2013-11-25 5 views
0

Я заглянул в модуль сокета Python и хотел попробовать некоторые вещи. Но, к сожалению, я даже не могу получить некоторые данные (всегда socket.timeout создается на recvfrom()). Вот текущее состояние:Получение данных на сокете (ICMP)

import socket 

connection = socket.socket(proto = socket.IPPROTO_ICMP, type = socket.SOCK_RAW) 
connection.settimeout(1) 
connection.sendto(b'', ('8.8.8.8', 80)) 
connection.recvfrom(1) 
connection.close() 

Все мои попытки получить простой ответ с этого сервера не удались. Может быть, кто-нибудь может сказать мне, как это сделать.

ответ

0

ICMP-пакет вряд ли является пустой байтовой сетью. Как и многие хорошо продуманные типы пакетов, он содержит заголовок и некоторые управляющие сообщения. Вот пара ресурсов, которые вы можете использовать для create your own ICMP packet using the struct module, а также некоторую документацию (есть много больше доступных в интернетах) about how the packet is constructed.

Смежные вопросы