c语言中解析IP数据报文

c语言中解析IP数据报文,第1张

+14就是跳过头部,裂友吵从第14字节起才是IP协议告扮的报文内容,随便用抓捕肆侍器抓一个包,可以看到这部分前导14个字节是源地址和目的地址以及类型,它们不属于IP协议本身。

socket编程写了一个简单的DNS服务器

是这样实现的斗渣,用两台PC,一个做客户端,一个做服务器;

在服务器用socket监视53端口,recvfrom()函数负责接收DNS查询报文,将其存入事先写好的数据结构里;

因为DNS查询报文和应答报文的前部分字段格式都是一样的,只是修改了几个参数,然后重点把DNS应答报文后面的字段进行增添。

然后陆念用sendto();函数发送就可以了。

在ie里面输入任意的网址,回车,就会触发客户端向服务器发出DNS查询报文,

此空悉悄时你可以同时在服务器和客户端抓包,看收到的报文是否正确。

注意几点:

1、一定要熟悉报文结构,定义合适的结构体,将报文进行解析

2、一定要注意网络序和主机序的转换htonl(),htons(),ntohl(),ntohs()等

3、找个熟知端口,最好是你熟悉的协议,如ftp,http,dns等。

4、客户端要把DNS服务器配置为你的服务器ip。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12463048.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存