如何通过PHP程序把访者的IP都记录下来?

有人对我的网站恶意刷站,导致我的网站程序占用大量的CPU.我想将他的IP段屏蔽掉,但是我网站程序没有记录IP这一项功能,有什么好的方法可以把来访的的IP记录下来吗,最好能... 有人对我的网站恶意刷站,导致我的网站程序占用大量的CPU.我想将他的IP段屏蔽掉,但是

我网站程序没有记录IP这一项功能,有什么好的方法可以把来访的的IP记录下来吗,最好能保存成txt文件,或者保存在mysql里也行,
然后我就可以找出那些大量重复的IP了,他IP段,看他还怎么牛!
如果可以的话,请求提供完整的代码,因为我对PHP还不是太懂。
“hailuo722”的方法可以直接使用,但是只能保存一个记录,我想要保存所有的来访记录,因为这样才能进行比较,我不太懂PHP所以不知道要如何修改才能实现。
展开
 我来答
hailuo722
推荐于2016-05-24 · 超过29用户采纳过TA的回答
知道答主
回答量:183
采纳率:0%
帮助的人:78.1万
展开全部
<?php
function ip()
{
if(getenv('HTTP_CLIENT_IP') && strcasecmp(getenv('HTTP_CLIENT_IP'), 'unknown'))
{
$ip = getenv('HTTP_CLIENT_IP');
}
elseif(getenv('HTTP_X_FORWARDED_FOR') && strcasecmp(getenv('HTTP_X_FORWARDED_FOR'), 'unknown'))
{
$ip = getenv('HTTP_X_FORWARDED_FOR');
}
elseif(getenv('REMOTE_ADDR') && strcasecmp(getenv('REMOTE_ADDR'), 'unknown'))
{
$ip = getenv('REMOTE_ADDR');
}
elseif(isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], 'unknown'))
{
$ip = $_SERVER['REMOTE_ADDR'];
}
return preg_match("/[\d\.]{7,15}/", $ip, $matches) ? $matches[0] : 'unknown';
}
$ip=ip();

//这样就能得到访问者的IP地址了,至于存文件,你可以这样写
$time=date("Y-m-d H:i:s");
$str=$ip." ".$time;
$l=fopen("aa.txt","w");
fwrite($l,$str);
fclose($l);
?>
还不明白的话,通知我
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Storm代理
2023-07-25 广告
StormProxies是全球大数据IP资源服务商,其住宅代理网络由真实的家庭住宅IP组成,可为企业或个人提供满足各种场景的代理产品。点击免费测试(注册即送1G流量)StormProxies有哪些优势?1、IP+端口提取形式,不限带宽,IP... 点击进入详情页
本回答由Storm代理提供
pzl7758
2009-04-29 · TA获得超过603个赞
知道小有建树答主
回答量:962
采纳率:100%
帮助的人:629万
展开全部
我这有个函数,直接可用,你可以拿去试试

/**
*@desc 取客户端IP
*/
function get_client_ip()
{
$remote_addr = '';
if (getenv('HTTP_CLIENT_IP')) {
$remote_addr = getenv('HTTP_CLIENT_IP');
} else if (getenv('HTTP_X_FORWARDED_FOR')) {
$remote_addr = getenv('HTTP_X_FORWARDED_FOR');
} else if (getenv('REMOTE_ADDR')) {
$remote_addr = getenv('REMOTE_ADDR');
} else {
$remote_addr = isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : '';
}
return $remote_addr;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
平儿他老相好
2013-01-05
知道答主
回答量:1
采纳率:0%
帮助的人:1543
展开全部
$l=fopen("aa.txt","w");

改为
$l=fopen("aa.txt","a");
就行了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式