首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 在php中,连接某个网站时,如何指定本机ip? [已结贴,结贴人:xujicool]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-04-25 09:54:14 楼主
    我的计算机有四个IP,A、B、C、D,都是可以使用的公网ip,比如A= 210.45.112.12(随便写的),现在在该计算机上有个php文件,当用户在网页上提交了关键词并将该关键词发给这个php文件后,该php文件将会利用google搜索相关的网站并将搜索到的网站返回来,现在的问题是,当有很多人同时访问这个php文件时,就会出现在短时间内同一个ip大量访问 google的情况,而这种情况下,这个ip是会被google封掉的,为了避免ip被封,我希望每次连接google的时候,都是从A、B、C、D中随机选择一个ip,然后去连接google,比如我第一次指定IP A去连google,那么google会认为是A这个ip连它的,下次换成B这个ip,然后google会认为是B这个ip在连接和访问它,这样 google就会认为我每次连接的ip都不一样,从而不会把我的ip封掉,请问各位高手,如何能在php中实现这一点,每次连接某个网站是我可以指定本机的ip?谢谢了,急用啊,请各位高手大侠不吝赐教啊。
    50  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • yifanwu
    • 等级:
    发表于:2008-04-25 10:51:391楼 得分:0
    我看你不顺眼一会儿变一张脸来给你一拳

    或者你去抢了银行之后变一下性

    或者你变你朋友的脸和外形去和他女友上一次床再变回来

    如果你朋友这样对你你没有意见的话,再来问这个问题
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • unlive
    • 等级:
    发表于:2008-04-25 15:09:572楼 得分:20
    你可以这样来实现,
    在A B C D上都布置你的那个php文件,然后,再由另一机器E来获得用户提交的关键词后,用随机函数从前四台来抽一台带参数访问GOOGLE,并将结果返回,当然E为全角色其它可以由前四台任意一台承担的,这里没有考虑效率问题,你只是多了一步中间内部处理,多了一个桥梁。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-04-25 15:13:453楼 得分:10
    PHP做不了
    使用curl,代理
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-04-25 15:14:034楼 得分:0
    我的意思是,PHP做不了伪造IP
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-04-25 17:31:405楼 得分:0
    curl代理
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-04-25 21:09:076楼 得分:0
    伪造IP? 好想法 实现了告诉俺一声 没事整天DDOS玩
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-04-25 21:56:417楼 得分:0
    呵呵,在这先谢谢各位的热心回答,各位可能误解了我的意思,初看伪造ip似乎是不可能的,但细想实际上跟DOS并不矛盾,对于普通的网络数据包,其IP完全是可以伪造的,只是伪造IP的数据包没有办法完成TCP/IP的三次握手过程,从而导致了连接是不成功的,但是我这台计算机上的若干个IP是合法的,我无法实DOS,因为我的IP有限,我伪造的IP也是合法的,可以成功和对方进行连接和通信的,而且PHP伪造IP也是可以的,不妨在google上用“php 伪造IP”作为关键词搜索一下,很多,我的意思是能在连接google时指定我的若干个合法IP之一,因为IP合法,所以是可以继续后面的连接的,呵呵,再次谢谢各位的热心回答,希望还有高手能不吝赐教。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-04-25 21:58:008楼 得分:0
    二楼unlive的想法很好,呵呵,谢谢了,只是我没有办法增加机器,客户的服务机房我是没有办法动的。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-04-25 23:53:409楼 得分:20
    如果是单线程 最笨的方法BAT改系统的IP

    多线程的话 如果是多网站采集 可以做成任务列表避免集中访问1个网站

    多线程还是单网站的话 多来几台机器吧 虚拟机也行啊 把所有IP都用上 最小安装的FreeBSD+Apache+php也就200多M 128内存足够 呵呵 玩吧
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-04-25 23:59:0110楼 得分:0
    PHP使用的是OS的socket连稍微底层的socket函数都没有 何来伪造IP之说 最多只停留在封包的层面

    google上的PHP伪造IP代码
    PHP code
    <? $evilip="X-Forwarded-For: 1.1.1.1"; send(""); function send($cmd) { global $server,$cookie,$count,$debug,$evilip; $path="http://www.yantai3.com/index.php"; $message = "POST ".$path." HTTP/1.1\r\n"; $message .= "Accept: */*\r\n"; $message .= "Accept-Language: zh-cn\r\n"; $message .= "Referer: ".$path."\r\n"; $message .= "Content-Type: application/x-www-form-urlencoded\r\n"; $message .= "User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; InfoPath.2) \r\n"; $message .= "Host: 218.244.140.48 \r\n"; $message .= "Content-length: ".strlen($cmd)."\r\n"; $message .= "Connection: Keep-Alive\r\n"; $message .= $evilip."\r\n"; $message .= "\r\n"; $message .= $cmd."\r\n"; echo $message; $fd = fsockopen("218.244.140.48", 80); fputs($fd,$message); } ?>
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-04-27 11:51:3011楼 得分:0
    呵呵,还是有很多高手愿意帮我找方法的,看来这个问题的确不是很好解决,不过PHP是可以用socket的,而ten789给的代码仅仅是伪造一个referer地址来欺骗google,google是不会被骗到的
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • syre
    • 等级:
    发表于:2008-04-27 15:55:2512楼 得分:0
    在php这层是没法选择ip的。
    如果需要更改ip,需要在服务器上设置。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-04-28 00:47:0313楼 得分:0
    记下来
    以后看
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-04-28 02:42:0914楼 得分:0
    引用 7 楼 xujicool 的回复:
    呵呵,在这先谢谢各位的热心回答,各位可能误解了我的意思,初看伪造ip似乎是不可能的,但细想实际上跟DOS并不矛盾,对于普通的网络数据包,其IP完全是可以伪造的,只是伪造IP的数据包没有办法完成TCP/IP的三次握手过程,从而导致了连接是不成功的,但是我这台计算机上的若干个IP是合法的,我无法实DOS,因为我的IP有限,我伪造的IP也是合法的,可以成功和对方进行连接和通信的,而且PHP伪造IP也是可以的,不妨在google上用“php…


    IP当然可以伪造,只要你自己封包就行了

    问题是,PHP做不到。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-04-28 02:42:4515楼 得分:0
    当然,如果一定要说
    其实也可以,那就是实现一个PHP的扩展,用C/C++的Socket编程来实现自己封包。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-04-28 09:51:5716楼 得分:0
    这个要对tcp/ip协议有很深的理解
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-01 05:11:1817楼 得分:0
    不明LZ在说什么
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-01 19:35:1318楼 得分:0
    呵呵,谢谢大家了,准备结贴了,太麻烦了,暂时先放一放了,再次谢谢大家的种种建议
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved