Code: Select all
import socket, time, os
from socket import gethostname
host = '' # Bind to all interfaces
port = 51423
#gw=[default, via, 10.0.0.1, dev, wlan0]
gw=os.popen("ip -4 route show default").read().split()
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.connect((gw[2],0))
myip=s.getsockname()[0]
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
s.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1) #broadcasr
#gethostname=raspberrypi
#myip = socket.gethostbyaddr(socket.gethostname())
print 'My IP',myip
# XX: assumes /24 address
broadcastip = socket.inet_ntoa(socket.inet_aton(myip)[:3] + b'\xff' )
print 'LAN broadcast', broadcastip
addr=(broadcastip, port)
data='Pi IP@'+myip
print 'send string is', data
s.bind((' ', port)) #socket binding to any host
while True:
s.sendto(data, addr)
time.sleep(3) #sleep 3 seconds