提问人:Uwe_98 提问时间:10/16/2019 最后编辑:Uwe_98 更新时间:10/28/2019 访问量:253
Python3:Scapy 属性 IP 需要 ip4 地址作为参数,但我只有 url
Python3: Scapy attribute IP needs ip4 address as parameter, but I just have the url
问:
我已经构建了一个在 Python 中使用 HTMLParser 库的网络爬虫。它进入一个页面,并继续下一个页面,链接到加载的页面,等等。它只是收集链接。现在,我需要对主机和我的 PC 之间的 TCP/IP 流量进行协议(数据包嗅探)。结果应存储在 file.pcap 中。我找到了一个似乎对我的目的有用的例子。我说得对吗?
参考代码!
这是我感兴趣的答案代码:
from scapy.all import wrpcap, Ether, IP, UDP
packet = Ether() / IP(dst="1.2.3.4") / UDP(dport=123)
wrpcap('foo.pcap', [packet])
- 这个代码可以用来吗?2. 如果是,如何?3.作为参数,我只有主机名,但没有dst(ip4-address)和dport-data。很明显,1.2.3.4 和 123 只是举个例子的假人。
答:
3赞
Cukic0d
10/16/2019
#1
您似乎非常不知道 IP 或端口的含义。您应该从阅读有关这方面的文章开始。
http://mason.gmu.edu/~afinn/html/tele/components/urls_ip.htm https://searchnetworking.techtarget.com/definition/TCP-IP
完成此操作后,请阅读文档以开始使用 Scapy: https://scapy.readthedocs.io/en/latest/
另外:你的问题是什么?
是否要 :
- 乒?
sr1(IP(dst="www.google.com")/ICMP())
- 连接?(TCP_client in https://scapy.readthedocs.io/en/latest/layers/http.html)
- ...?
评论
0赞
Uwe_98
10/28/2019
谢谢。您的链接非常有用。我将重新编辑问题。
1赞
vincent
10/16/2019
#2
我不熟悉 Scapy,但我知道如何通过地址获取 IP,您可以 ping
它:
$ ping stackoverflow.com
PING stackoverflow.com (151.101.193.69): 56 data bytes
64 bytes from 151.101.193.69: icmp_seq=0 ttl=46 time=374.685 ms
64 bytes from 151.101.193.69: icmp_seq=1 ttl=46 time=397.401 ms
64 bytes from 151.101.193.69: icmp_seq=2 ttl=46 time=684.908 ms
64 bytes from 151.101.193.69: icmp_seq=3 ttl=46 time=301.389 ms
那么你就会知道stackoverflow.com的IP是151.101.193.69
评论
1赞
Cukic0d
10/16/2019
我不知道这有什么意义。OP询问了TCP端口,但显然ICMP中没有端口... -_-
1赞
Uwe_98
10/16/2019
是的,它使。有 2 个问题:一个是关于 url 到 ip 的转换,第二个是是否有与 wrcap 类似的函数将 url 作为参数。wrcap 需要 IP 和端口。现在,与此同时,我已经红了一点,现在我知道 http 端口 80 是默认端口,而 https 端口是 443,当我没有错时。
评论