网站首页 > 易语言相关 > 网络相关源码 正文
本文章将介绍如何使用RawSocket(原始套接字)开发网络嗅探器:
首先我们得了解什么是套接字,这个我就不多说,自己百度,百度百科比我说的好。
那么什么又是原始套接字呢,常用的套接字分为 SOCK_STREAM(流套接字) 用于TCPXY通讯。 SOCK_DGRAM(数据报套接字) 同于UDPXY通讯。
那么原始呢,他则是和名字一样原始套接字;举例:要想用流套接字进行一次TCP的发包,那么直接连接上对方服务器然后用Send就可以发送指定的内容,但其实发送的数据并不止你的那些内容,有一些东西是流套接字会给你自动补上的。TCP是属于IPXY的一个子XY,那么要发送一个TCP数据包就得加上(以太网XY报头这个先不提),IPXY的报头,和TCPXY报头,这些东西流套接字都会帮你处理,而原始套接字则不会(当然也可以设置让原始套接字构造IP报头)。原始套接字他有更多的用途,但相对来说也比流套接字或数据报套接字麻烦。 原始套接字还可以设置成允许接收本地所有的套接字数据。那么我们就利用这个功能来做嗅探器!
首先:1.使用 WSAStartup (合并短整数 (2, 2), WSADATA) 来初始化Winsocket服务 其参数有2个 第一个 (短整数型/双字节型):wVersionRequired 这个参数表明使用的winsock版本号,高位指定修订版本号,低位指定主版本号。第二个参数 WSADATA类型 用于接收Winsocket细节东西,咱不用管它。
//下面就不说那么详细了,源码里面全是注释,自己看。
2.然后使用socket (#AF_INET, #SOCK_RAW, #IPPROTO_IP) 来创建一个套接字 第一个参数应该是表明Internet地址格式反正只能固定这个,仅仅支持这个 参数2:表明要创建的是一个原始套接字,参数3:指定IPXY IPXY包括其子XY TCP UDP 等。成功返回套接字句柄
3. bind (s, addr, sizeof (addr)) 将套接字绑定至指定网卡,参数1=套接字句柄 参数2为一个addr结构的值,该值表明要绑定的网卡IP及端口号
4. ioctlsocket (Socket, 2550136833, 1) 将套接字的模式改变为允许接收所有数据
顺利完成上面的操作后咱就可以用Recv来接收数据包了,只要不断的调用Recv就OK。
@小白熊
- 上一篇: 易语言用Access数据库写的通讯录源码
- 下一篇: 易语言高仿QQ登录页面源码
猜你喜欢
- 2022-04-19 取网卡信息 - 取连接名称、MAC、IP、DNS、网关等
你 发表评论:
欢迎- 百度站内搜索
- 关注微信公众号
- 网站分类
-
- 网站公告
- 电子书书籍
- 程序员工具箱
- 编程工具
- 易语言相关
- 网络相关源码
- 图形图像源码
- 系统工具源码
- 易语言模块源码
- 易语言支持库
- 数据库类源码
- 易语言例程
- 易语言游戏开发
- 易语言模块
- 多媒体类源码
- 易语言资源网
- 易语言视频教程
- JS分析教程
- 易语言图文教程
- 易语言常见问题及笔记
- 工具源码
- 易语言版本
- 网络编程
- javascript
- PHP编程
- html
- 正则表达式
- 面试题
- nodejs
- 其它综合
- 脚本专栏
- python
- 按键精灵相关
- 按键精灵图文教程
- 按键精灵视频教程
- 按键精灵Q语言
- 按键精灵安卓版
- golang
- 游戏安全
- 火山相关
- 火山安卓软件
- 火山常见问题及笔记
- 火山安卓源码
- 火山视频教程
- 火山PC版本下载
- 火山PC视窗例程
- 互联网那些事
- 引流推广
- 项目揭秘
- 网络营销
- 营销软件
- QQ营销软件
- 娱乐软件
- 机器人插件
- 培训教程
- 技术教程
- 活动线报
- 数据库
- Redis
- Access
- MongoDB
- Mysql
- 问答
- 其它
- 易语言
- 需求
- 在线教程
- 多线程培训班
- 觅风易语言教程
- 模拟系列教程
- 集中营易语言教程
- 历史数据
- 随机tag
已有3位网友发表了看法:
易语言论坛 评论于 [2019-09-26 23:00:53] 回复
rawsocket++指定网卡
易语言模块 评论于 [2019-10-20 18:30:10] 回复
指定程序用指定网卡
fiddler 评论于 [2022-03-02 19:20:38] 回复
原始套接字+指定网卡+