这是我的代码来检测我的系统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这可能吗?
use $_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']));
}
似乎你的页面是托管在互联网网络(例如服务器的ip是2.178.x.x
)。在这种情况下,我能说的是不能。
Web服务器无法访问用户的网络内部。例如,你有一个wifi调制解调器和3个人连接。webserver只能看到你的外部(internet) ip地址,而不能看到内部(在wifi网络中,如192.168.x.x
)
所以答案是:你不能