Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/python
- ## Sandman
- # DOC: Fri, Mar 27, 13:05:00
- # CS 1.6 UDP Client System
- #TODO: Modify parser for 1.6
- import sys
- import socket
- from socket import *
- if len(sys.argv) < 2 :
- print "|:| Usage: "+sys.argv[0]+" "
- print "|:| Arguments: -r -v -q -p [NOT WORKING]"
- print "|:| ./udpClnt.py 172.16.X"
- sys.exit()
- # Set the socket parameters
- quiet = 1
- pckDump = 1
- delm = 0
- parse = 0
- sbsString = ""
- port = 27015 #Set Default Dest. Port
- arg=1
- if "-q" in sys.argv:
- if len(sys.argv) < 3:
- print "|!| Error: address missing!"
- sys.exit()
- quiet = 0
- if "-v" in sys.argv:
- print "|:| CS 1.6 UDP Scan Client, Version: 1.1 >>[sand|MAN]"
- sys.exit()
- if "-r" in sys.argv:
- if len(sys.argv) < 4:
- print "|!| Error: address missing!"
- sys.exit()
- arg=3
- port=int(sys.argv[2])
- if "-p" in sys.argv:
- if len(sys.argv) < 3:
- print "|!| Error: address missing!"
- sys.exit()
- parse = 1
- bcast = sys.argv[arg] #Set Sender Addr.
- bindHost = "172.16.49.143" #Set Host Addr. HardCoded Data
- locPort = 27005 #Set Local Listen Port.
- buf = 1024 #Buffer Size
- local = (bindHost,locPort) #Group Localhost & Port (27005).
- startNum = 1
- # Create Socket, Bind to Port: 27005.
- UDPSock = socket(AF_INET,SOCK_DGRAM) #IPV4 UDP Socket Def.
- UDPSock.bind((local)) #Bind Client to local group.
- UDPSock.setsockopt(SOL_SOCKET, SO_BROADCAST, 1) #Enable Broadcast
- UDPSock.settimeout(3) #Set Timeout to 3s.
- print "|:| Using port:", sys.argv[2]
- # Prep Infostrings. "TSourceEngineQuery"
- data = chr(255) + chr(255) + chr(255) + chr(255) + "TSource Engine Query" + chr(0)
- while startNum < 256 : #INIT WHILE LOOP FOR 1-255
- bcast2 = bcast + "." + str(startNum)
- addr = (bcast2,port)
- UDPSock.sendto(data,addr) #Send UDP Packet
- if quiet == 1:
- print "|+| Sending Packet To: ", bcast2
- startNum = startNum + 1
- if quiet == 1:
- print "|-| Received Packets:"
- print "|-| Servers:"
- try:
- while True:
- data,addr = UDPSock.recvfrom(buf)
- if quiet == 1:
- print "|-| Received packet with payload data:"
- print "", data
- pckDump = pckDump + 1
- packLen = len(data)
- if quiet == 1:
- if parse == 1:
- print "|:| Packet payload parser initialized"
- if parse == 1:
- for i in range(packLen):
- if data[i] == "\\":
- x = i
- sbsString = ""
- if x < packLen:
- x = x + 1
- while data[x] != "\\": #Packet Data Parser Start
- sbsString = sbsString + data[x]
- x = x + 1
- if sbsString == "address":
- sbsString = ""
- x = x + 1
- while data[x] != "\\":
- sbsString = sbsString + data[x]
- x = x + 1
- print "Address: ", sbsString
- if sbsString == "players":
- sbsString = ""
- x = x + 1
- while data[x] != "\\":
- sbsString = sbsString + data[x]
- x = x + 1
- print "Players: ", sbsString
- if sbsString == "bots":
- sbsString = ""
- x = x + 1
- while data[x] != "\\":
- sbsString = sbsString + data[x]
- x = x + 1
- print "Bots: ", sbsString
- if sbsString == "gamedir":
- sbsString = ""
- x = x + 1
- while data[x] != "\\":
- sbsString = sbsString + data[x]
- x = x + 1
- print "Game: ", sbsString
- if sbsString == "description":
- sbsString = ""
- x = x + 1
- while data[x] != "\\":
- sbsString = sbsString + data[x]
- x = x + 1
- print "Description: ", sbsString
- if sbsString == "hostname":
- sbsString = ""
- x = x + 1
- while data[x] != "\\":
- sbsString = sbsString + data[x]
- x = x + 1
- print "HostName: ", sbsString
- if sbsString == "map":
- sbsString = ""
- x = x + 1
- while data[x] != "\\":
- sbsString = sbsString + data[x]
- x = x + 1
- print "Map: ", sbsString
- if sbsString == "password":
- sbsString = ""
- x = x + 1
- while data[x] != "\\":
- sbsString = sbsString + data[x]
- x = x + 1
- print "Password: ", sbsString
- if sbsString == "secure":
- sbsString = ""
- x = x + 1
- while data[x] != "\\":
- sbsString = sbsString + data[x]
- x = x + 1
- print "Secure: ", sbsString
- break
- except: #Catch Recieve Timeout.
- print "|-| End Of Received List."
- # Close socket
- UDPSock.close()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement