如何在linux下用c语言编写一个能够发送icmp报文的小程序

麻烦您给我完整具体的代码。要求实现在命令行下写入’网址参数‘能够输出’发送到接受所需要的时间和ttl‘。万分感激。... 麻烦您给我完整具体的代码。
要求实现在命令行下写入’网址参数‘能够输出’发送到接受所需要的时间和ttl‘。
万分感激。
展开
 我来答
捣蒜大师Edison
2018-04-28 · TA获得超过2963个赞
知道大有可为答主
回答量:3825
采纳率:77%
帮助的人:1300万
展开全部

需要建立socket,参数是AF_INET,SOCK_RAW,IPPROTO_ICMP

自己构造ICMP数据包, sendto发送给某地址。

ICMP有多种,你可以发送type为13的时间戳请求。

然后调用recvfrom会收到type为14的timestamp reply的IP包,

IP头一般是20 Bytes,里面包含src IP,des IP还有TTL等。

IP包的数据就是返回ICMP timestamp reply报文,里面有origTimestamp,recvTimestamp,transStamp,可以计算出时间。

可以参考网页链接网页链接

觉得有帮助可以注册帐号,给他点个“星”

稻草人生活印记
2018-04-25 · 知道合伙人互联网行家
稻草人生活印记
知道合伙人互联网行家
采纳数:9024 获赞数:184275
毕业于软件技术专业,从事计算机应用科学与通信工程研究(学习)工作,百度资深行家。

向TA提问 私信TA
展开全部
对linux应用程度还不能做小开发。
建议找常用linux系统的网友帮你。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
藤原子大雄
2018-04-25 · TA获得超过7195个赞
知道大有可为答主
回答量:6977
采纳率:82%
帮助的人:1718万
展开全部
先在终端中输入 vim test.c 回车进入vim编辑器,再按一下a键,进入编辑状态,然后输入如下C语言语句: #include<stdio.h> int main() { printf("hello world!\n"); } 到此,按esc键退出编辑状态,再输入一个冒号(shift + 冒号分号那个键),紧跟着输入 wq ,即 输入 :wq 按回车,即推出vim编辑器回到终端命令窗口(类似xp的命令提示符), 之后输入 gcc test.c ,这步是编译 ./a.out , 这是执行,将会输出 hello world! 到此结束,前提是你已经安装gcc
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式