GPS ユニットからの投稿を聞いています。Wireshark では、デバイスからの投稿が表示されます。ただし、私のpythonコードでは、それらをキャッチしていません。これが私が使用したコードです。pydocs/socketsからほぼそのままです。ネットワーク上の他のものから多くの応答を受け取りますが、デバイスの IP が表示されません。
#HOST = socket.gethostbyname(socket.gethostname())
HOST = ''
SENDER = '166.161.24.104'
PORT = 22335
BUFFSIZE = 1024
TIMEOUT = 60 # seconds
import socket
# the public network interface
HOST = socket.gethostbyname(socket.gethostname())
# create a raw socket and bind it to the public interface
s = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket.IPPROTO_IP)
s.bind((HOST, 22335))
# Include IP headers
s.setsockopt(socket.IPPROTO_IP, socket.IP_HDRINCL, 1)
# receive all packages
s.ioctl(socket.SIO_RCVALL, socket.RCVALL_ON)
while True:
# receive a package
ans, addr = s.recvfrom(BUFFSIZE)
print(addr[0])
# disabled promiscuous mode
s.ioctl(socket.SIO_RCVALL, socket.RCVALL_OFF)
これは、私のネットワークで話しているすべての IP アドレスのリストを投稿します。