我离baidu.com有几跳
一、背景
最近,读了网易游戏面试经验(三) - cotyb - 博客园之后,自己尝试着在windows下tracert了一下baidu.com,结果如下图一所示,发现从tracert的结果看,似乎一直到30跳之后都没有达到baidu.com(220.181.57.217)。然而如果ping baidu.com是可以ping通的,心想30跳也到不了baidu.com似乎有点远,于是有了下面的尝试。

尝试一:指定ttl为29,ping,可以ping通

尝试二:比较ping和tracert抓包结果
ping包的内容

tracert包的内容

二、初步结论
对比ping和tracert包之后发现,ping包的内容里有abcdef...等字符,而tracert的icmp包则是全0。猜测是baidu.com对icmp包的内容进行了识别。为了验证这一点,下面通过scapy,构造不同icmp包进行验证。
三、验证
1)scapy发送64个字节全零报文,wireshark抓包显示没有收到应答:
a=64*"\x00"
send(IP(dst="220.181.57.217")/ICMP()/a)
2)发送内容为“abcdefghjklmnopq”、“abcdefghjklmnopqr”的报文,都收到了应答。
send(IP(dst="220.181.57.217")/ICMP()/“abcdefghjklmnopq”)
四、一个可以输出距离baidu.com有几跳的小脚本
一些复杂的场景比如,不同ping baidu.com得到不同地址没有考虑。修改这个小程序,读取ping的输出的话,能够得到和每一跳的IP地址。
import os n=30
i=1
while i<n: a=os.popen('ping -n 2 -i '+str(i)+' baidu.com').read()
if "TTL=" in a:
print "success"
break
i=i+1
#print a
if i<n:
print "distance is %d hops"%i

我离baidu.com有几跳的更多相关文章
- 总结asp.net页面跳转
ASP.NET页面跳转相关知识 一.<a>标签 1. <a href=”test.aspx”></a> 2. 这是最常见的一种转向方法; eg: < ...
- location.href跳转不正确
今天写这个随笔的用意是为了记录我遇到的一种情况,导致我页面无法正确跳转 location.href跳转页面其实很简单,只要附上url就可以了,但是今天我在测试一个跳转时是这么写的: location. ...
- HTML / JavaScript / PHP 实现页面跳转的几种方式
① HTML 的 meta refresh 标签 <!doctype html> <html lang="en"> <head> <met ...
- java相关各种页面跳转
AK相信页面跳转在这个圈圈圆圆里是个地球人都能经常遇到的事,AK也在平时的工作学习中记录了一些,这里就做一个小小的总结,有任何的疑问和质疑都希望您能告诉我,不用担心后果,必定至少您还能理我,AK万分感 ...
- 解决IE6下a标签的onclick事件里的超链接不跳转问题
今天遇到个很诡异的问题,就是<a href="javascript:void(0);" onclick="window.location=url"> ...
- 三、nginx301跳转302跳转
301跳转设置: server { listen 80; server_name downcc.com; rewrite ^/(.*) http://www.downcc.com/$1 permane ...
- 浅谈URL跳转与Webview安全
学习信息安全技术的过程中,用开阔的眼光看待安全问题会得到不同的结论. 在一次测试中我用Burpsuite搜索了关键词url找到了某处url,测试一下发现waf拦截了指向外域的请求,于是开始尝试绕过.第 ...
- PHP代码审计笔记--URL跳转漏洞
0x01 url任意跳转 未做任何限制,传入任何网址即可进行跳转. 漏洞示例代码: <?php $redirect_url = $_GET['url']; header("Locati ...
- nginx做http向https的自动跳转
在访问百度时,在浏览器输入www.baidu.com会自动跳转到https://www.baidu.com不用人工干预,nginx也可以做这样的自动跳转! 首先让nginx服务器监听两个端口,分别是8 ...
随机推荐
- windows phone 水印TextBox
原文来自:wp教程网 原理:在失去焦点和获取焦点的时候,判断Text值是否为空或者是否与水印值相同,然后修改TextBox中的Text和Foreground. 代码如下: /* =========== ...
- Scalaz(58)- scalaz-stream: fs2-并行运算示范,fs2 parallel processing
从表面上来看,Stream代表一连串无穷数据元素.一连串的意思是元素有固定的排列顺序,所以对元素的运算也必须按照顺序来:完成了前面的运算再跟着进行下一个元素的运算.这样来看,Stream应该不是很好的 ...
- 全文检索学习历程目录结构(Lucene、ElasticSearch)
1.目录 (1) Apache Lucene(全文检索引擎)—创建索引:http://www.cnblogs.com/hanyinglong/p/5387816.html (2) Apache Luc ...
- 基于HTML5 Canvas实现的图片马赛克模糊特效
效果请点击下面网址: http://hovertree.com/texiao/html5/1.htm 一.开门见山受美国肖像画家Chuck Close的启发,此脚本通过使用HTML5 canvas元素 ...
- $(function) ready onload 等区别
新手接触javascript.jquery的时候不可避免的要接触题目所标识的相关内容,反复看过几次一到用的时候总是不踏实,写文以记之. 符号“$”是jquery对象(个人这样理解,拥有函数的用法).接 ...
- 回收ImageView占用的图像内存
使用方法: RecycleBitmap.recycleImageView(mSelectorView); 参数为imageview /** * 回收ImageView占用的图像内存; * 使用了本 ...
- initialize和init以及load方法的区别与使用以及什么时候调用
initialize不是init initialize在这个类第一次被调用的时候比如[[class alloc]init]会调用一次initialize方法,不管创建多少次这个类,都只会调用一次这个方 ...
- php面向对象编程 设计模式
面向对象编程的基本原则: 单一职责:一个类,只需要做好一件事 开放封闭:一个类,应该是可扩展的,而不是可修改的 依赖倒置:一个类,不应该强依赖另一个类.每个类对应另外一个类都是可替换的 配置化:尽可能 ...
- Web客户端数据存储学习笔记——Cookie
今天对登录访问的安全以及web客户端存储做了一些大致的学习,决定在这方面加深理解,记录在博客里.第一个接触到的是Cookie... WHAT? WHY? HOW? 在学习cookie的使用时发现其名称 ...
- Java源码分析之LinkedList
LinkedList与ArrayList正好相对,同样是List的实现类,都有增删改查等方法,但是实现方法跟后者有很大的区别. 先归纳一下LinkedList包含的API 1.构造函数: ①Linke ...