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

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

本文所述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)

这个函数功能也很强大。

采用ADSL拨号方式的用户大都可以获得一个公网IP地址,

安装Windows XP,Windows2000,Windwos2003系统的用户,

在 开始/运行里输入 “cmd” 然后输入“ipconfig”命令可以查看本机IP地址,

但是每次使用都要打开“命令提示符”窗口,感到非常的麻烦,有没有简单省事的办法呢?

其实就在系统托盘处(屏幕右下角,就是的旁边)有一个双PC形状的“本地连接”图标,打开“本地连接”窗口,切换到“支持”选项页,在这里你可以看到地址类型、IP地址、子网掩码等信息,点击“详细信息”按钮还可以看到网卡的MAC地址、IP地址、IP掩码、默认网关、DHCP服务器、租约过期、DNS服务器等等更加详细的内容,是不是比使用ipconfig命令方便多了。

如果我在内网,怎样查看本机外网(公网)ip地址?

访问本站: ip 查询页面 >

因为你拿本机访问的,所以只能是127001

如果你是局域网用户,让其他用户访问,就会变成例如:1921680123之类

如果让外网用户访问,就会是外网用户的IP了

//最简单获取ip地址代码一句实例

$reIP=$_SERVER["REMOTE_ADDR"];

echo $reIP;

//

//php教程获取ip的算法

if(getenv(>

方法:

1、进入php源程序目录中的ext目录中,这里存放着各个扩展模块的源代码,选择需要的模块,比如curl模块执行phpize生成编译文件,phpize在PHP安装目录的bin目录下。

2、phpize 运行时,可能会报错Cannot find autoconf。

3、需要安装autocon执行这个命令时,php会去检查配置文件是否正确,如果有配置错误,这里会报错,可以根据错误信息去排查。

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

假设你的服务端在1010501,公网IP都是8888。

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

如果你的客户端以公网的形式访问,如>

1、做成web服务器需要满足:域名或者公网ip,电脑安装配置web服务,开启80端口允许访问,网站程序。

2、域名或者公网ip,这一点一般家用宽带没有固定的公网ip,常用的动态域名解析花生壳,科迈动态解析,建议申请使用花生壳动态域名解析,并设置到路由器上,这样网站的访问域名是花生壳的子域名。

3、如果有公网固定ip,建议购买一个域名解析到这个ip上,这个公网ip可以在电脑直接设定。web绑定,防火墙允许80端口就可以了。

4、电脑安装配置web服务,这个条件比较好实现 ,找个服务器 *** 作系统,如win2003系统,安装上iis组件就可以了,默认80就打开了,然后再配置一下程序需要的环境。

5、如果net程序就安装net framwork相应版本,如果php就配置php+mysql环境。

6、家用宽带默认80端口在路由器不开放的,需要在路由器上做端口映射,将个人电脑ip 80端口通过宽带路由映射出去。

7、网站程序,自己会开发了可以自己做,不会了到网上下载一些开源程序就可以了。

//试试这个

function getip(){

if(!empty($_SERVER[">

以上就是关于php实现获取局域网所有用户的电脑IP和主机名、及mac地址完整实例全部的内容,包括:php实现获取局域网所有用户的电脑IP和主机名、及mac地址完整实例、怎么样可以知道自己电脑的公网IP、关于php获取ip的问题 $ip = $_SERVER['REMOTE_ADDR']; 请高手解答下!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9692254.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存