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