如何得到想ping命令一样的ttl值

rediori 2004-04-10 02:12:41
Reply from 211.157.102.21: bytes=32 time=71ms TTL=115

我用的是icmp方式的ping。 怎么得到 向上面一样的ttl

我用setsockopt设置了ttl但是得不到我想要的效果
...全文
128 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
smallbull 2004-04-10
  • 打赏
  • 举报
回复
关注
sharkhuang 2004-04-10
  • 打赏
  • 举报
回复
ttl是路由器减的!但是不通的话会发送icmp包
GR 2004-04-10
  • 打赏
  • 举报
回复
TTL 跟icmp没有关系,准确的说。是在ip协议里的。icmp加在IP上。ping提取了IP包的这个信息。

有一些文章讲用来判断主机系统,只是因为几个系统的TTL设置值差距过大,给人一个可以模糊判断的方法。

ttl经过一个路由器就减1.具体楼已经说了很清楚了。
rediori 2004-04-10
  • 打赏
  • 举报
回复
谢谢各位帮忙,可能我没有说清楚。

根据资料ICMP 回显应答的 TTL 字段值 不同的系统是有默认值的
LINUX Kernel 2.2.x & 2.4.x ICMP 回显应答的 TTL 字段值为 64

FreeBSD 4.1, 4.0, 3.4;
Sun Solaris 2.5.1, 2.6, 2.7, 2.8;
OpenBSD 2.6, 2.7,
NetBSD
HP UX 10.20
ICMP 回显应答的 TTL 字段值为 255

Windows 95/98/98SE
Windows ME
ICMP 回显应答的 TTL 字段值为 32

Windows NT
Windows 2000
ICMP 回显应答的 TTL 字段值为 128

我是根据这个来判断的,但很奇怪的是我ping自己得到的是80(window2k)ping工作站得到的10,Solaris 2.8

这个是什么原因?
zhangcrony 2004-04-10
  • 打赏
  • 举报
回复
http://www.copathway.com/vchelp/zsrc/win_ping_src.zip
图形界面的Ping工具, for your reference!
zhangcrony 2004-04-10
  • 打赏
  • 举报
回复
TTL就是Time To Live,其实就表明了报文“存活”的时间。报文每经过一个路由器,路由器就会将TTL值减一,如果TTL值为0,路由器就将该报丢弃,并给发送端回送一个TIME EXCEEDED的ICMP报文(不过有些路由器只是丢弃该报,却并不会送ICMP,这种路由器TRACERT无法跟踪)。因此,TRACERT首先发送一个TTL为1的报文,于是会得到第一个路由器会送的ICMP,TRACERT再发送一个TTL为2的报文,就会得到第二个路由器的ICMP,以此类推,直至收到目的IP回送的ICMP报文为止。现在假设源IP与目的IP之间需要经过10个路由器,那么如果TTL设为8,IP报将无法到达目的地。Windows使用的缺省TTL(Ieexplorer、telnet等)好像是32?记不清了。ping可以指定TTL值。
fzd999 2004-04-10
  • 打赏
  • 举报
回复
暈`

18,356

社区成员

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

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