在python3中返回socket.recvfrom()

时间:2019-07-10 08:12:56

标签: python-3.x sockets network-programming recvfrom

我正在编写一个基本程序,该程序可以监听线路并获取所有数据包以供以后分析,而我无法正确使用socket.recvfrom函数。

我正在使用socket.recvfrom(65565)来获取框架并稍后对其进行分析。根据python3文档,它应该返回一个元组,其中包含该IP框架的数据和源地址。

相反,我有一个数据元组和一个数组。在第二个数组中,我具有捕获数据包的接口以及其他元素。我无法在其中找到IP地址。

有人知道这些其他元素是什么以及如何获取源IP地址

def create_socket():
    try:
        s = socket.socket(socket.AF_PACKET, socket.SOCK_RAW,
                socket.htons(0x0003))
    except socket.error as msg:
        print ("Ne peut pas créer la socket. Code erreur : %d. Message : %s" %
                (msg[0], msg[1]))
        sys.exit()

    return s

def listen_trafic(sock):
    while True:
        packet, address = sock.recvfrom(
        print ("address %s" % socket.inet_ntoa(address))
        # generates an error

...

...

0 个答案:

没有答案