首页 电脑 电脑学堂 查看内容

获取百度贴吧用户IP的实现思路 (PHP)

2012-3-30 09:53 595 0

摘要:   要获取百度贴吧用户IP,就要在贴吧页面创建个切入点,显然贴吧是不可能支持插入PHP之类代码执行的,这里我们用到一个方法,这个方法和我们经常在百度贴吧里看到的诸如“1楼显示本贴中最新回复内容”之类帖...
关键词: 图片 http SERVER PHP jpg abcd baidutieba 方法 百度贴吧 一个

  要获取百度贴吧用户IP,就要在贴吧页面创建个切入点,显然贴吧是不可能支持插入PHP之类代码执行的,这里我们用到一个方法,这个方法和我们经常在百度贴吧里看到的诸如“1楼显示本贴中最新回复内容”之类帖子同样原理。方法如下:  在百度贴吧发贴时插入图片时输入如“http://www.abcd9.com/baidutieba.jpg”此类格式的伪图片URL,之所谓称为“伪图片URL”,在于贴吧发图片是将其作为图片URL,而实际上“/baidutieba.jpg/”是我们事先在web空间上的创建的文件夹,虽然最后没有斜杠浏览器会自动将其做为文件夹来访问,我们再在“/baidutieba.jpg/”目录下建立一个index.php索引文件,并写入想要执行的php代码,这样,在帖吧里浏览含有伪图片“http://www.abcd9.com/baidutieba.jpg”的帖子时就会触发“http://www.abcd9.com/baidutieba.jpg/index.php”页面的执行。  这里要注意的是,这时执行的php页面相当于是一个嵌套页面,是无法获取贴吧页面的session、cookie的,我们可以将其视为访客新打开一个不同的浏览器进行对该页面访问。  当然,要实现如上方法,前提是你自己拥有一个网站空间,且web环境不会将这种文件夹解析为文件,我们可以这样测试下:建立文件后缀格式的文件夹,如“/abcd9.jpg/“,在其中建立index.php,随意写入能输出的代码,这里以显示php服务器配置信息为例:  <?  phpinfo();  ?>  在浏览器输入http://www.abcd9.com/abcd9.jpg,此时如果返回404错误,则是服务器将此路径解析为网络图片;如果返回php服务器配置信息,则表示php执行成功。  index.php获取访客IP的代码:  <?        @header("Content-type:image/jpeg");  echo file_get_contents("pic.webp"); //显示图片   if($_SERVER[HTTP_REFERER]!=''){   if ($_SERVER["HTTP_X_FORWARDED_FOR"]) { //获取ip  if ($_SERVER["HTTP_CLIENT_IP"]) {  $proxy = $_SERVER["HTTP_CLIENT_IP"];  } else {  $proxy = $_SERVER["REMOTE_ADDR"];  }  $ip = $_SERVER["HTTP_X_FORWARDED_FOR"];  } else {  if ($_SERVER["HTTP_CLIENT_IP"]) {  $ip = $_SERVER["HTTP_CLIENT_IP"];  } else {  $ip = $_SERVER["REMOTE_ADDR"];  }  }   $ip='IP:'.$ip;  if (isset($proxy)) {  //获取代理ip  $ip=$ip.' proxy IP:'.$proxy;  }    说明:代码中“pic.jpg”是http://www.abcd9.com/abcd9.jpg/index.php执行后显示的图片,我们可以将一个仅有白色背景的小图片存为pic.jpg上传到“/abcd9.jpg/”目录下,这是用来避免在贴子内因图片标签调用伪图片url的图像失败而显示红色叉。   (上述方法已实践成功;下述方法仅是思路,有待实践。)  至此,我们就能在帖吧获取用户IP,但也仅仅是获取到了IP,不能获取session、cookie,怎么将IP跟当前登陆的用户ID关联呢?这里,我们就要用到PHP的GD库截屏函数 ,在index.php获取IP后截取屏幕,生成图片时以当前IP命名,生成类似192.168.1.1.jpg 格式的图片,这样查看网站空间里的记录图片就能将IP跟用户ID相对应,实现获取百度贴吧用户IP的目的。
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

最新评论

返回顶部