scapy - How to get number of hops to a website in python -


addr = socket.gethostbyname('dalitstan.org') target = [addr] result, unans = traceroute(target,maxttl=32) 

i using above code , getting below output. how can number of hops in between machine , server i.e 18 below case?

begin emission: *finished send 32 packets. ************************ received 25 packets, got 25 answers, remaining 7 packets    185.53.178.6:tcp80  1  192.168.43.1    11  3  10.71.80.2      11  4  172.16.26.245   11  5  172.26.31.242   11  11 49.44.18.38     11  13 103.198.140.164 11  14 103.198.140.27  11  15 80.81.194.27    11  16 217.64.161.25   11  17 217.64.170.214  11  18 185.53.178.6    sa  19 185.53.178.6    sa  20 185.53.178.6    sa  21 185.53.178.6    sa  22 185.53.178.6    sa  23 185.53.178.6    sa  24 185.53.178.6    sa  25 185.53.178.6    sa  26 185.53.178.6    sa  27 185.53.178.6    sa  28 185.53.178.6    sa  29 185.53.178.6    sa  30 185.53.178.6    sa  31 185.53.178.6    sa  32 185.53.178.6    sa  25 

the result you're looking first answer tcp layer (since previous hops answer icmp packet). more precise, you're looking lower ttl of packets have sent got tcp answer.

in scapy, can select (probe, answer) tuples sndrcvlist object containing tcp layer using [tcp]: result[tcp]. can compare result.show() result[tcp].show() if i'm not clear enough.

now, extract ttl values of sent packets, use [snd[ip].ttl snd, _ in result[tcp]]. need minimum value using min() (or first value using [0] or next() actually, since packets sorted; feel using min() safer however):

result, _ = traceroute('dalitstan.org') min(snd[ip].ttl snd, _ in result[tcp]) 

Comments

Popular posts from this blog

ubuntu - PHP script to find files of certain extensions in a directory, returns populated array when run in browser, but empty array when run from terminal -

php - How can i create a user dashboard -

javascript - How to detect toggling of the fullscreen-toolbar in jQuery Mobile? -