2015-09-16 263 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

所以答案是:你不能。