<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(">
127001或者19216801之类的,属于IPV4的格式
127001转换为IPv6就是 ::1
IPv6具体的格式写法,你搜索一下了解一下。
另外 ,服务端获取ip地址,是相对的。比如你在局域网内建一个服务器,在程序里获取的ip地址,就是客户端在局域网的ip ,一般是类似 1921680101 之类的,大公司的话可能 10xxx
局域网的ip地址,可以直接在网络适配器上看到
而在inter网,也就是大网络上,服务端获取的ip地址,是你的连网设备获取到的公网ip ,一般一个局域网内的主机,相对于因特网上的服务器,显示的都是公网地址。
公网ip没有在本机电脑上直接显示。会显示在路由或者连网设备上。也可以通过百度搜索 ip地址,会显示你的公网ip
所以,假设一个局域网内,有两台电脑同时访问一个网上的服务器,服务器是没办法给两台电脑区分开ip地址的,显示的是一样的。只是可能得到的设备信息不一样(如:浏览器的useragent)
function real_server_ip(){
static $serverip = NULL;
if ($serverip !== NULL){
return $serverip;
}
if (isset($_SERVER)){
if (isset($_SERVER['SERVER_ADDR'])){
$serverip = $_SERVER['SERVER_ADDR'];
}
else{
$serverip = '0000';
}
}
else{
$serverip = getenv('SERVER_ADDR');
}
return $serverip;
}
发一个函数给你
/获取客户端IP地址
@param integer $type 返回类型 0 返回IP地址 1 返回IPV4地址数字
@param boolean $adv 是否进行高级模式获取(有可能被伪装)
@return mixed
/
function get_client_ip($type = 0,$adv=false) {
$type = $type 1 : 0;
static $ip = NULL;
if ($ip !== NULL) return $ip[$type];
if($adv){
if (isset($_SERVER['>}
如果是本地测试的话,获取到的是127001
function getIP() {
if (@$_SERVER[">
以上就是关于用php来获得客户端服务器ip的方法全部的内容,包括:用php来获得客户端服务器ip的方法、php 怎么获取内网IP、PHP如何获取服务器外网IP等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)