pythonリモートマシンからパケットを取得し、それらを(os.write(self.tun_fd.fileno()、 '' .join(packet)))tunインターフェイスに書き込むスクリプトがありますgr3:
Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:10.0.0.6 P-t-P:10.0.0.8 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:61 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:500
RX bytes:5124 (5.0 KiB) TX bytes:0 (0.0 b)
次のように、個別のポンスクリプトを介してこれらのパケットを受信したいと思います。
import threading, os, sys, fcntl, struct, socket
from fcntl import ioctl
from packet import Packet
Host = '10.0.0.6'
PORT = 111
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((Host, PORT))
s.listen(1)
conn, addr = s.accept()
print 'Connected by', addr
while 1:
data = conn.recv(1024)
if not data: break
else: print data
conn.sendall(data)
conn.close()
私はこのエラーを受け取りました:
s.bind((Host, PORT))
File "<string>", line 1, in bind
socket.error: [Errno 13] Permission denied
非特権ユーザーとして1024未満のポート番号にバインドすることはできません。
したがって、次のいずれかを行う必要があります。
111から受け入れることが本当に必要な場合は、より難しく、しかしより安全なソリューション: