[英]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規范中考慮了很多這些變量,因此您應該可以期待這些變量。
額外知識
$_SERVER['HTTP_HOST']
-提供http://192.168.0.1/index.php
$_SERVER['SERVER_NAME']
-提供www.example.com
$_SERVER['SERVER_ADDR']
-給出127.0.0.1
$_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.