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()