Python3 x Socket - ICMP Echo request - Почему мой сокет зависает на recv?

Я хочу отправить эхо-запрос с ICMP и сокетом Python. Я отправлял пакет. Но моя программа зависает на recv из сокета. Почему моя розетка повешена? ОС Windows10. Запустить терминал в режиме администратора.

# -*- coding: utf-8 -*-
import socket
import struct


def ping(host, port):
    with socket.socket(socket.AF_INET, socket.SOCK_RAW, socket.IPPROTO_ICMP) as sock:
        sock.connect((host, port))
        sock.settimeout(30)
        icmp_message = struct.pack('!BBHHH', 8, 0, 8, 0, 0)
        packet = icmp_message
        print('send packet...')
        sock.sendall(packet)
        print('recv...')
        data = sock.recv(1024)


def main():
    ping('192.168.0.1', 80)


if __name__ == '__main__':
    main()

0 ответов

Другие вопросы по тегам