首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

一个发包有关问题

2012-08-24 
请教各位一个发包问题。我要实现的需求是:网络环境,我们的软件部署在单位网络内,采用旁路抓包技术,可以抓取

请教各位一个发包问题。
我要实现的需求是:
 网络环境,我们的软件部署在单位网络内,采用旁路抓包技术,可以抓取用户互联网的数据包。现在有如下需求要实现的,一直没思路,请各位大侠帮忙。
 1、如果用户访问(比如)www.sina.com ,假若该网站是单位不允许上班时间访问的,需要转向到公司网站中的一个链接,比如www.xxx.com\a.html 这个链接就是公司规定,上班时间不允许访问该网站。。
 2、认证功能,用户第一次打开浏览器,需要给用户弹出一个认证页面,当输入的用户名和密码一致时才放行,否则不能访问互联网。


  目前的软件是用C来做的,增加以上功能,如果用c实现,有无方案。
 谢谢。。谢谢各位。。。

[解决办法]
有难度, 模拟TCP好难, 如果你做的程序能够抓到浏览器的connect请求,然后模拟与之三路握手并接受其HTTP请求,之后响应它一个HTTP Location重定向就行了。 所以你还需要在机器上跑一个web服务器,提供认证页面,完成认证过程,这个功能点很小,写一个C服务端就搞定了,页面是死的,放在文件里,你直接就是接受一个GET请求,把文件读出来发过去,还可能接受一个GET验证码的请求,你得构造COOKIE并且用文件维护一个SESSION记录下验证码,还得最终接受提交上来的账号密码验证码,你的服务端只要根据3个URL(认证页面,验证码图片,登陆按钮)做不同的事就行了,并不复杂。

话说我们学校的锐捷无线的认证页面超级难登,刷100次能出来5次认证页面。
[解决办法]

探讨
引用:

楼主的问题可以用纯C实现,知道libpcap(linux)和winpcap(win)吗?
通过这两个东西提供的源码,可以抓取整个网段的数据包,设置端口为80
通过抓包活得http头部,访问sina的时候可以抓包获得http内容,其中host为www.sina.com
剩下的问题解决就方便了



这个我知道,已经实现了。关键是我下一步怎么办?查了下资料说……

热点排行