python scapy traceroute_python 版本traceroute和路由图片输出

python 的traceroute功能能利用scapy模板很方便实现,并且可以输出路由图片非常直观。

这里了修改了《python自动化运维:技术与最佳实践》的代码进行说明。#!/usr/bin/evn python

#-*-coding:utf-8 -*-

import time

import logging,warnings

import subprocess

import socket

# eclipse的pydev提示unresolve,但运行正常

from scapy.all import traceroute  # @UnresolvedImport

warnings.filterwarnings("ignore",category=DeprecationWarning)

logging.getLogger("scapy.runtime").setLevel(logging.ERROR)

domains = raw_input('Please input domains or IPs: ')

# 利用socket 解析域名的方法

# try:

#     ip = socket.gethostbyname(domains)

# except socket.error,e:

#     print "you should run by root"'''

try:

domain = domains.split(' ')

res,unans = traceroute(domains,dport=[80,443],retry=-2)

res.graph(target=">test.svg")

time.sleep(1)

#输出转换为png为可选,chrome,ie等可以打开.svg文件

subprocess.Popen("/usr/bin/convert test.svg test.png",shell=True)

except:

print "you shoud run by root or domain error"

注意:traceroute程序都需要root来运行。traceroute函数可以传入以列表格式的多个域名/IP,和多个端口(这里有80和443)

这里我给出在学校traceroute百度和谷歌的输出结果:

左边为百度,右边为谷歌。经过了移动的CDN解析,谷歌最后经过了电信的CDN

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值