簡體   English   中英

如何檢測本地IP地址

[英]How to detect local ip address

這是我的代碼來檢測我的系統IP地址

<?php

if ($_POST['login']) {

    $uname = $_POST['uname'];
    $pass = $_POST['pass'];

    $email = $_POST['email'];
    $phnoe = $_POST['phnoe'];
    $ipd = $_SERVER['REMOTE_ADDR'];

    if (mysql_query("Insert Into nennetwork (name, email, password, phone, useripp ) Values ('$uname', '$email', '$pass', '$phnoe', '$ipd' )"))
        $pdmsg = "New Member Added!!";
}

和我的IP是192.168.7.16,但它給服務器地址,如103.18.164.206 ..我希望我的系統的IP有可能嗎?

使用$_SERVER['SERVER_ADDR'];

$_SERVER是一個包含標題,路徑和腳本位置等信息的數組。 該數組中的條目由Web服務器創建。 不能保證每個Web服務器都可以提供其中的任何一個。 服務器可能會省略某些服務器,或提供此處未列出的其他服務器。 就是說,在»CGI / 1.1規范中考慮了很多這些變量,因此您應該可以期待這些變量。

額外知識

  1. $_SERVER['HTTP_HOST'] -提供http://192.168.0.1/index.php
  2. $_SERVER['SERVER_NAME'] -提供www.example.com
  3. $_SERVER['SERVER_ADDR'] -給出127.0.0.1
  4. $_SERVER['REMOTE_ADDR'] -還給出了127.0.0.1

編輯01

$ipAddress = $_SERVER['REMOTE_ADDR'];
if (array_key_exists('HTTP_X_FORWARDED_FOR', $_SERVER)) {
    $ipAddress = array_pop(explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']));
}

看起來您的頁面托管在Internet網絡上(例如,服務器的ip為2.178.xx )。 在這種情況下,我只能說你做不到

Web服務器無法訪問用戶網絡內部。 例如,您有一個wifi調制解調器,並且連接了3個人。 網絡服務器只能看到您的外部(互聯網)IP地址,而看不到內部(在wifi網絡中,例如192.168.xx

所以答案是:你不能。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM