2015-09-16 261 views
-1

這是我的代碼來檢測我的系統IP地址如何檢測本地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 是否有可能?

+0

使用'$ _SERVER ['SERVER_ADDR']' – Saty

+0

您無法使用PHP獲取客戶端的IP。 –

回答

2

使用$_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'])); 
} 
+0

不,它是插入主機地址 – ashlliza

+0

好吧,這是給他一個主機地址,但我提到的IP是我的電腦的互聯網IP地址。 – ashlliza

+0

@Moderator它不是真的。假設我可以訪問互聯網,我的IP地址是'2.187.xx.xx',我的網絡IP是'192.168.2.1'。我在'192.168.2.20'上運行了一個wamp服務器,並從電腦的瀏覽器訪問它。 **什麼代碼顯示ip'192.168.2.1'?** – TechJS

1

,因爲它似乎你的網頁託管的互聯網網絡(用於服務器的例子IP是2.178.x.x)。在這種情況下,我可以說的是,你傾斜

Web服務器無法訪問用戶網絡內部。例如,你有一個wifi調制解調器和3人連接。網絡服務器只能看到你的外部(互聯網)IP地址不是內部(在WiFi網絡中,像192.168.x.x

所以答案是:你不能。