本文目录一览:
- 1、PHP显IP的函数是多少?
- 2、php实现图形显示Ip地址的代码及注释
- 3、使用php怎么显示外网ip,要把php文件放到哪个路径下啊
- 4、PHP怎么获取当前电脑的IP?
- 5、用PHP写出显示客户端IP与服务器IP的代码
PHP显IP的函数是多少?
显示ip不用函数的,只需打印PHP Variables就可以了
$_SERVER["SERVER_ADDR"] 这个是服务器ip
$_SERVER["REMOTE_ADDR"] 这个是客户端ip
php实现图形显示Ip地址的代码及注释
使用图形显示Ip,文件
sunip.php
复制代码
代码如下:
?php
header("Content-type:
image/gif");
$im
=
imagecreate(130,15);
$background_color
=
ImageColorAllocate
($im,
255,
255,
255);
unset($ip);
if($_SERVER['HTTP_CLIENT_IP']){
$ip=$_SERVER['HTTP_CLIENT_IP'];
}
else
if($_SERVER['HTTP_X_FORWARDED_FOR']){
$ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
}
else{
$ip=$_SERVER['REMOTE_ADDR'];
}
//
$col
=
imagecolorallocate($im,
0,
51,
102);
imagestring($im,
3,
5,
1,
$ip
,
$col);
imagegif($im);
imagedestroy($im);
?
1.
?php
2.
header("Content-type:
image/gif");
第二行
声明浏览器标头
输出为GIF图形
3.
$im
=
imagecreate(130,15);
建立一个图形
imagecreate(130,15)括号内130,15分别代表宽度和高度
4.
$background_color
=
ImageColorAllocate
($im,
255,
255,
255);
设置背景颜色
imagecolorallocate
为一幅图片分配颜色
($im,
255,
255,
255)im代表前面提到的新建图形
后面的3个255则代表颜色表ffffff的10进制字符
5.
unset($ip);
无用
6.if($_SERVER['HTTP_CLIENT_IP']){
$ip=$_SERVER['HTTP_CLIENT_IP'];
}
else
if($_SERVER['HTTP_X_FORWARDED_FOR']){
$ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
}
else{
$ip=$_SERVER['REMOTE_ADDR'];
}
如果$_SERVER['HTTP_CLIENT_IP']可以使用则使用$_SERVER['HTTP_CLIENT_IP']下面类似
为判断
此段是为了兼容多种服务器设置
7.
$col
=
imagecolorallocate($im,
0,
51,
102);
定义文字颜色
8.
imagestring($im,
3,
5,
1,
$ip
,
$col);
将获取到的IP画到新建的画布上
imagestring($im,
3,
5,
1,
$ip
,
$col);
分别代表imagestring(图形表示,字符尺寸1-5,X坐标,Y坐标,输出的IP,颜色)
9.
imagegif($im);
输出GIF图形
10.
imagedestroy($im);
释放内存
11.
?
程序结束
使用php怎么显示外网ip,要把php文件放到哪个路径下啊
获取客户端(即访问用户)的IP
function getip() {
$unknown = 'unknown';
if ( isset($_SERVER['HTTP_X_FORWARDED_FOR'])
$_SERVER['HTTP_X_FORWARDED_FOR']
strcasecmp($_SERVER['HTTP_X_FORWARDED_FOR'],
$unknown) ) {
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
} elseif ( isset($_SERVER['REMOTE_ADDR'])
$_SERVER['REMOTE_ADDR']
strcasecmp($_SERVER['REMOTE_ADDR'], $unknown) ) {
$ip = $_SERVER['REMOTE_ADDR'];
}
在要显示的页面的位置echo getip();
获取客户端IP的方法有很多,如果你只是要显示IP,容易些。如果你还要根据IP获取所在城市(例如:112.221.108.xxx来自上海xx)之类的。那就需要另外再处理。
自己加载IP库不现实,不准还难得更新。所以一般都用网上的接口,taobao的比较稳定
PHP怎么获取当前电脑的IP?
本文所述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";
}
}
}
用PHP写出显示客户端IP与服务器IP的代码
服务器IP用:
echo(gethostbyname($SERVER_NAME));
客户端IP用下面函数:
function iptype1 () {
if (getenv("HTTP_CLIENT_IP")) {
return
getenv("HTTP_CLIENT_IP");
}
else {
return "none";
}
}
function iptype2 () {
if (getenv("HTTP_X_FORWARDED_FOR")) {
return getenv("HTTP_X_FORWARDED_FOR");
}
else {
return "none";
}
}
function iptype3 () {
if (getenv("REMOTE_ADDR")) {
return getenv("REMOTE_ADDR");
}
else {
return "none";
}
}
function ip() {
$ip1 = iptype1();
$ip2 = iptype2();
$ip3
= iptype3();
if (isset($ip1) $ip1 != "none" $ip1 !=
"unknown") {
return $ip1;
}
elseif (isset($ip2) $ip2
!= "none" $ip2 != "unknown") {
return $ip2;
}
elseif
(isset($ip3) $ip3 != "none" $ip3 != "unknown") {
return $ip3;
}
else {
return "none";
}
}
使用时,直接调用ip();