Initial commit
This commit is contained in:
		
							
								
								
									
										8
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,8 @@
 | 
				
			|||||||
 | 
					*.swp
 | 
				
			||||||
 | 
					venv
 | 
				
			||||||
 | 
					*.pyc
 | 
				
			||||||
 | 
					__pycache__/*
 | 
				
			||||||
 | 
					__pycache__
 | 
				
			||||||
 | 
					*.wpr
 | 
				
			||||||
 | 
					*.log
 | 
				
			||||||
 | 
					.idea
 | 
				
			||||||
							
								
								
									
										48
									
								
								main.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										48
									
								
								main.py
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,48 @@
 | 
				
			|||||||
 | 
					#!/usr/bin/env python3
 | 
				
			||||||
 | 
					import socket
 | 
				
			||||||
 | 
					import time
 | 
				
			||||||
 | 
					import fcntl
 | 
				
			||||||
 | 
					import struct
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def get_ip_address(ifname):
 | 
				
			||||||
 | 
					    s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
 | 
				
			||||||
 | 
					    return socket.inet_ntoa(fcntl.ioctl(s.fileno(), 0x8915, struct.pack('256s', ifname[:15].encode()))[20:24])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def get_uptime():
 | 
				
			||||||
 | 
					    with open('/proc/uptime', 'r') as f:
 | 
				
			||||||
 | 
					        uptime_seconds = float(f.readline().split()[0])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    return uptime_seconds
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def main():
 | 
				
			||||||
 | 
					    sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDP)
 | 
				
			||||||
 | 
					    sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEPORT, 1)
 | 
				
			||||||
 | 
					    sock.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
 | 
				
			||||||
 | 
					    sock.setsockopt(socket.SOL_SOCKET, socket.SO_BINDTODEVICE, b"eth0")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    print("Beaconing...")  # or something, idk i don't do english
 | 
				
			||||||
 | 
					    while True:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        ipaddr = ""
 | 
				
			||||||
 | 
					        try:
 | 
				
			||||||
 | 
					            ipaddr = get_ip_address("eth0")
 | 
				
			||||||
 | 
					        except:
 | 
				
			||||||
 | 
					            pass
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        message = b"BIRBOX|" + ipaddr.encode() + b"|" + str(int(get_uptime())).encode()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        sock.sendto(message, ('<broadcast>', 6969))
 | 
				
			||||||
 | 
					        time.sleep(10)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if __name__ == "__main__":
 | 
				
			||||||
 | 
					    print("Starting beacon...")
 | 
				
			||||||
 | 
					    try:
 | 
				
			||||||
 | 
					        main()
 | 
				
			||||||
 | 
					    except KeyboardInterrupt:
 | 
				
			||||||
 | 
					        pass
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    print("Beacon stopped.")
 | 
				
			||||||
		Reference in New Issue
	
	Block a user