hook connect函数问题,虚拟主机IP访问问题

diouf3 2013-02-17 11:49:19
问题是这样的,我要做一个网页的跳转,就是访问例如www.aaa.com(ip为1.1.1.1)然后自动跳转到www.bbb.com(ip为2.2.2.2),我用的方法是hook connect,就是通过hook connect在新的connect函数中判断addr.sin_addr.S_un.S_addr的IP地址是否为1.1.1.1如果是的话,就改成2.2.2.2,这样就完成了跳转也成功了!但是当我要跳转的网站为www.ccc.com(ip为3.3.3.3)时,由于www.ccc.com为虚拟主机,自己没有独立的IP,3.3.3.3为共享的IP,这时候就跳转失败了,弹出http400错误,就是找不到此网页。
所以我想问的是,怎么样才能用IP访问虚拟主机?如果不可以的话,编程的时候怎么用域名访问,connect是第一个用IP作为参数的socket函数,但是用不了域名,而不用域名又连不上虚拟主机,这可叫我怎么办好,后面的send,recv也涉及不到域名。所以小弟十分困惑!
再有DNS服务器只是将域名转换为IP地址,那个当1个IP地址对应多个域名时,那即使DNS将域名转化为IP了,那用IP访问也不知道是哪个网站啊?
小弟跪求大牛解答~!
...全文
309 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
酷酷的鱼 2013-02-20
  • 打赏
  • 举报
回复
看来楼主想做IE网站劫持的东西吧,sockaddr结构里 你修改IP 除非你跳转的那网站是独立IP的服务器或者空间 外面很多劫持的思路可以参考,另外,截取数据包然后修改也是个不错的法子
Yofoo 2013-02-19
  • 打赏
  • 举报
回复
可能原因比较多, 发送函数不一定全是send了,还有如wsasend, 还有注意不能修改所有send的主机头, 有可能css, js用的第三方域名的 具体问题需要用工具找原因 如你说的抓包工具, 或者其他如firebug
diouf3 2013-02-18
  • 打赏
  • 举报
回复
引用 1 楼 zzz3265 的回复:
http 协议里面包含了请求的主机域名, 只修改 connect 的IP是不完整的, 这个情况需要再修改 send里面的数据, 如下 GET / HTTP/1.1 Host: www.baidu.com Connection: keep-alive Accept: text/html,application/xhtml+xml,application/xml;……
大牛,我按照你的说法也HOOK send了,然后改了host地址,这样确实可以访问www.ccc.com了,但是访问时有错误存在,网页状态栏显示有错误,并且访问的网页没有css了,意思就是版面很乱,只有字体的染色,整个页面没有排版,我用封包工具截取了一下,在没有hook之前直接访问www.ccc.com与hook了之后的封包有很大的差别!请问大牛,是不是hook send时不仅要修改host地址,还要修改一下封包的其它内容?
Yofoo 2013-02-18
  • 打赏
  • 举报
回复
http 协议里面包含了请求的主机域名, 只修改 connect 的IP是不完整的, 这个情况需要再修改 send里面的数据, 如下 GET / HTTP/1.1 Host: www.baidu.com Connection: keep-alive Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 User-Agent: Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.28 (KHTML, like Gecko) Chrome/26.0.1397.2 Safari/537.28 Accept-Language: zh-CN,zh;q=0.8 其中的Host: www.baidu.com 这个是确定要访问哪个网站, 是需要修改的

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧