您的位置:

php获取局域网ip,php获取局域网内机器磁盘空间

本文目录一览:

PHP如何获取内网IP

试试$_SERVER['REMOTE_ADDR']如果服务器在外网的话,

那么访问的话获得的是外网的IP,无法获取内网IP。

希望回答对你有帮助,如果有疑问,请继续追问

答题不易,互相理解,您的采纳是我前进的动力,感谢您。

php实现获取局域网所有用户的电脑IP和主机名、及mac地址完整实例

本文所述php实例可以完成获取局域网所有用户的电脑IP和主机名、及mac地址的功能,对于php程序设计人员有一定的参考借鉴价值。完整代码如下:

?php

$bIp

=

gethostbyname($_ENV['COMPUTERNAME']);

//获取本机的局域网IP

echo

"本机IP:",$bIp,"\n";

echo

"本机主机名:",gethostbyaddr($bIp),"\n\n\n";

//gethostbyaddr

函数可以根据局域网IP获取主机名

//默认网关IP

list($ipd1,$ipd2,$ipd3)

=

explode('.',$bIp);

$mask

=

$ipd1

.

"."

.

$ipd2

.

"."

.

$ipd3

;

exec('arp

-a',$aIp);

//获取局域网中的其他IP

foreach(

$aIp

as

$ipv)

{

if(strpos($ipv,'接口')

!==

false)

{//一下显示的IP是否是当前局域网中的

而不是其他的类型

可以在cmd下试一下命令

$bool

=

false;

preg_match('/(?:(?:25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d)))\.){3}(?:25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d)))/',$ipv,$arr);

if(strcmp($arr[0],$bIp)

==

0)

{

$bool

=

true;

}

}

else

{

if($bool)

{

$str

=

preg_replace('/\s+/',

'|',

$ipv);

$sArr

=

explode('|',$str);

if($sArr[1]

==

'Internet'

||

empty($sArr[1]))

{

continue;

}

//去除默认网关

if(strcmp($mask

.

".1",

$sArr[1])

==

0)

{

continue;

}

//去除同网关下255的IP

if(strcmp($mask

.

".255",

$sArr[1])

==

0)

{

continue;

}

//去除组播IP

list($cIp)

=

explode('.',

$sArr[1]);

if($cIp

=

224

$cIp

=

239)

{

continue;

}

echo

"IP地址:|",$sArr[1],"|\n";

echo

"MAC地址:",$sArr[2],"\n";

echo

"主机名:",gethostbyaddr($sArr[1]),"\n";

echo

"\n\n";

}

}

}

该程序是在cli模式下运行的,在浏览器上应该也可以

php获取局域网中的用户ip功能就完成了,主要用到的是php的exec函数

和window的arp

-a

命令

其中获取本机IP:gethostbyname($_ENV['COMPUTERNAME'])

有别于以往的写法,感兴趣的朋友可以继续深入研究一下。

获取主机名函数:gethostbyaddr(IPd)

这个函数功能也很强大。

php获取局域网IP

$ip = $_SERVER['REMOTE_ADDR'];只是获取客户端所在的IP,但一个IP可以这个是没办法获得的,这个涉及到路由策略,它不可能把内网IP提供给你,它总

php如何获取局域网内网的IP

这个跟你的路由设置和访问方式有关。

假设你的服务端在10.10.50.1,公网IP都是8.8.8.8。

假设你的客户端在 10.10.50.100-199,出口公网IP是4.4.4.4

如果你的客户端以公网的形式访问,如,则服务端获得IP都是4.4.4.4。

反之以内网的形式访问,如,获得的IP就是10.10.50.1XX。

解决的办法,要么就是使用内网地址访问,要么使用设置一下路由,指定10.10.50.100-199访问的话,不走公网,走10网段。

php怎么获取服务器内网ip?

//服务器在局域网的话,那么显示的则是内网IP

$onlineip = $_SERVER['REMOTE_ADDR'];

echo $onlineip;

php怎么获取公网ip和内网ip

$ip=$_SERVER["REMOTE_ADDR"];

SetCookie("ip","$ip");

$ip==isset($_COOKIE['ip']);

我这个得到的是外网IP

$ip=$_SERVER["REMOTE_ADDR"];

if(in_array(strtok($i, '.'), array('10', '127', '168', '192')))

echo '内网';

内网A类网段只开列了常见的部分,其余的你自己增减