一般用会话(SESSION)来判断是否登录,以及登录用户名等信息。
//登录页面<?php
session_start()
if($_POST['user']==$user && $_POST['pwd']=$pwd){
//如果登录成功,生成对应的会话值。
$_SESSION['logined']=1 //判断是否已经登录的依据。
$_SESSION['user']=$user //记录当前登录用户。
}else{
echo "登录失败,不记录SESSION值"
}
?>
//另一个页面
<?php
session_start()
//检测是否登录
if(isset($_SESSION['logined']) && $_SESSION['logined']){
//$_SESSION['logined']有设置,并且值为真,表示已经登录
echo "当前登录用户是: ".$_SESSION['user']
}
?>
SESSION是代表会话值,他的生存时间是浏览器打开的周期,就是说浏览器一旦关闭,会话值就会消失。并且会话值有个个特点就是,在会话值生命周期内,同一个域名的页面能够访问该域名产生的会话值,例如,百度知道页面产生的会话值,那么在新打开的百度百科页面也能访问。
<?php$host = "17.18.122.12"$user = "administrator@abc.com"
$pswd = "@#$%edcR"
$conn = ldap_connect($host) or die("Could not connect!" )
if($conn){//设置参数
ldap_set_option ( $conn, LDAP_OPT_PROTOCOL_VERSION, 3
)
ldap_set_option ( $conn, LDAP_OPT_REFERRALS, 0 )// Binding to ldap
server
$bd = ldap_bind($conn, $user, $pswd) or die ("Could not
bind")
echo "ldap_bind success"
}
else{
echo "Unable to connect to
AD server"
}
?>
本文所述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)
这个函数功能也很强大。
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)