用php来获得客户端服务器ip的方法

用php来获得客户端服务器ip的方法,第1张

<?php

echo

"当前脚本服务器的主机名:".gethostbyaddr($_SERVER['REMOTE_ADDR'])."<br

/><hr

/>"

echo

"获得当前运行PHP脚本(页面)所在的服务器的

IP

地址:".$_SERVER['SERVER_ADDR']."<br

/><hr

/>"

echo

"获得当前运行PHP脚本(页面)所在的服务器的

主机名:".$_SERVER['SERVER_NAME']

echo

'<hr>'

echo

'客户端ip'.

$_SERVER['REMOTE_ADDR']

echo

'<br>'

echo

'客户端ip'.getenv('REMOTE_ADDR')

echo

"<br>"

echo

'服务器主机ip'.gethostbyname("www.qq.com")

?>

运行出来:

当前脚本服务器的主机名:XYL-PC

获得当前运行PHP脚本(页面)所在的服务器的

IP

地址:127.0.0.1

获得当前运行PHP脚本(页面)所在的服务器的

主机名:localhost

客户端ip127.0.0.1

客户端ip127.0.0.1

服务器主机ip61.135.169.105

来看看代码:

echo "(1)浏览当前页面的用户的 IP 地址为:"

echo $_SERVER['REMOTE_ADDR']

echo "

"

echo "(2)浏览当前页面的用户的 IP 地址为:"

echo getenv('REMOTE_ADDR')

echo "

"

echo "主机 www.baidu.com 的 IP 地址为:"

echo gethostbyname(www.baidu.com)

2

它的输出结果为:

(1)浏览当前页面的用户的 IP 地址为:127.0.0.1

(2)浏览当前页面的用户的 IP 地址为:127.0.0.1

主机 www.baidu.com 的 IP 地址为:61.135.169.105

3

关于获取客户端的 IP 地址,有俩方法:

第一个是使用:

$_SERVER['REMOTE_ADDR']

它正在浏览当前页面用户的 IP 地址,这里的输出结果为 127.0.0.1,因为这是在本地测试,输出的是我本地的环路地址。

第俩个是使用:

getenv('REMOTE_ADDR')

这里使用了函数 getenv : Gets the value of an environment variable(得到各种环境变量的值),返回值:Returns the value of the environment variable varname, or FALSE on an error(失败的话返回 FALSE).

客户端的ip变量:

$_SERVER['REMOTE_ADDR'] :客户端IP,也有可能是代理IP

$_SERVER['HTTP_CLIENT_IP']:代理端的IP,可能存在,也可能伪造

$_SERVER['HTTP_X_FORWARD_FOR'] :用户在哪个ip上使用的id,可能存在,也可能伪造

服务端的ip变量:

$_SERVER['SERVER_NAME'] :需要使用函数gethostname()来获得,这个无论是服务器端还是客户端都能正常显示。

$_SERVER['SERVER_ADDR']:服务器端的ip地址,在服务器端测试ip地址,在客户端测试正常

getnev 获得系统的环境变量:


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/236460.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-10
下一篇2023-04-10

发表评论

登录后才能评论

评论列表(0条)

    保存