① php用什么函数获得用户的IP
简单的
<?$iipp=$_SERVER["REMOTE_ADDR"];
echo $iipp;?>
复杂点的
<?
//php获取ip的算法
if ($HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"])
{
$ip = $HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"];
}
elseif ($HTTP_SERVER_VARS["HTTP_CLIENT_IP"])
{
$ip = $HTTP_SERVER_VARS["HTTP_CLIENT_IP"];
}
elseif ($HTTP_SERVER_VARS["REMOTE_ADDR"])
{
$ip = $HTTP_SERVER_VARS["REMOTE_ADDR"];
}
elseif (getenv("HTTP_X_FORWARDED_FOR"))
{
$ip = getenv("HTTP_X_FORWARDED_FOR");
}
elseif (getenv("HTTP_CLIENT_IP"))
{
$ip = getenv("HTTP_CLIENT_IP");
}
elseif (getenv("REMOTE_ADDR"))
{
$ip = getenv("REMOTE_ADDR");
}
else
{
$ip = "Unknown";
}
echo "你的IP:".$ip ;
?>
② php隐藏IP地址后两位显示为星号的方法
本文实例讲述了php隐藏IP地址后两位显示为星号的方法。分享给大家供大家参考。具体实现方法如下:
我们在很多的公共网站中都会有碰到显示用户的IP时后面几个IP段显示为星号了,这样很好的保护了用户隐私了,感兴趣的朋友可以一起来看看。
php正则格式化IP地址,隐藏后一位。
例子
复制代码
代码如下:<?php
//隐藏后一位
return
preg_replace('/(\d+)\.(\d+)\.(\d+)\.(\d+)/is',"$1.$2.$3.*",$ip);
//隐藏IP最后几位为*
echo
ereg_replace("[^\.]{1,3}$","*",$ip);
?>
例子
php实现隐藏Ip地址最后一段或者最后两段的方法
复制代码
代码如下:<?php
//--隐藏IP后几位
$ip='127.0.0.1';
$reg1='/((?:\d+\.){3})\d+/';
$reg2='~(\d+)\.(\d+)\.(\d+)\.(\d+)~';
echo
preg_replace($reg1,"\\1*",$ip);//以上输出结果为:127.0.0.*
echo
"------------------<br/>";
echo
preg_replace($reg2,"$1.$2.*.*",$ip);//以上输出结果为:127.0.*.*
?>
例子
复制代码
代码如下:function
suohao($phone){
$p
=
substr($phone,0,3)."*****".substr($phone,8,3);
return
$p;
}
当然还有像数组以.分开之后把数组2,3进行替换就可以了或组合0,1数组就可以了。
希望本文所述对大家的php程序设计有所帮助。
③ php 怎样将有范围的ip转化为整型范围
<?php
$ip=$_SERVER["REMOTE_ADDR"];//获取客户端IP
$longip=ip2long($ip);
//程序员通常将IP转换成整形写入数据库
//读取的时候再把它转成标准的IP地址
$ip=long2ip($longip);
echo'<pre>';
print_r(array($longip=>$ip));
?>
④ PHP判断IP是中国IP还是外国IP
//返回ip所在的区域外国ip精确到国名
functiongetcposition($ip){
try{
$res1=file_get_contents("http://ip.taobao.com/service/getIpInfo.php?ip=$ip");
$res1=json_decode($res1,true);
if($res1["code"]==0){
return$res1['data']["country"].$res1['data']["region"].$res1['data']["city"]."_".$res1['data']["isp"];
}else{
return"未能获取";
}
}catch(Exception$e){
return"未能获取";
}
}
⑤ php获取IP地址的三个函数区别
以下资料供参考:
1、REMOTE_ADDR 浏览当前页面的用户计算机的ip地址
2、HTTP_X_FORWARDED_FOR 浏览当前页面的用户计算机的网关
3.HTTP_CLIENT_IP 客户端的ip
在PHP 中使用 REMOTE_ADDR 来取得客户端的 IP 地址,但如果客户端是使用代理服务器来访问,那取到的就是代理服务器的 IP 地址,而不是真正的客户端 IP 地址。
要想透过代理服务器取得客户端的真实 IP 地址,就要使用 HTTP_X_FORWARDED_FOR 来读取。
不过要注意的事,并不是每个代理服务器都能用 HTTP_X_FORWARDED_FOR 来读取客户端的真实 IP,有些用此方法读取到的仍然是代理服务器的 IP。
还有一点需要注意的是:如果客户端没有通过代理服务器来访问,那么HTTP_X_FORWARDED_FOR 取到的值将是空的。
⑥ php爬虫程序中怎么样伪造ip地址防止被封
1、国内ADSL是王道,多申请些线路,分布在多个不同的电信区局,能跨省跨市更好,自己写好断线重拨组件,自己写动态IP追踪服务,远程硬件重置(主要针对ADSL猫,防止其宕机),其余的任务分配,数据回收~
2、1.IP必须需要,,ADSL。如果有条件,其实可以跟机房多申请外网IP。
2.在有外网IP的机器上,部署代理服务器。
3.你的程序,使用轮训替换代理服务器来访问想要采集的网站。
3、ADSL + 脚本,监测是否被封,然后不断切换 ip
设置查询频率限制
正统的做法是调用该网站提供的服务接口。
4、
1 user agent 伪装和轮换
2 使用代理 ip 和轮换
3 cookies 的处理,有的网站对登陆用户政策宽松些
友情提示:考虑爬虫给人家网站带来的负担,be a responsible crawler
5、
尽可能的模拟用户行为:
1、UserAgent经常换一换;
2、访问时间间隔设长一点,访问时间设置为随机数;
3、访问页面的顺序也可以随机着来
6、
1. 对爬虫抓取进行压力控制;
2. 可以考虑使用代理的方式访问目标站点。
-降低抓取频率,时间设置长一些,访问时间采用随机数
-频繁切换UserAgent(模拟浏览器访问)
-多页面数据,随机访问然后抓取数据
-更换用户IP