mirror of
https://github.com/flotwig/spoofident
synced 2025-08-22 10:07:18 +00:00
34 lines
850 B
Python
34 lines
850 B
Python
from os import setuid,setgid,path
|
|
from json import load
|
|
import dualstack
|
|
def handleIdent(fd):
|
|
data=fd.recv(1024).strip()
|
|
ports=data.split(',',2)
|
|
ports=map(validPort,ports)
|
|
if len(ports)<2 or (not ports[0] or not ports[1]):
|
|
fd.send('0,0 : ERROR : INVALID-PORT')
|
|
else:
|
|
fd.send(data + ' : USERID : '+settings['os']+' : '+settings['user'])
|
|
fd.send('\r\n')
|
|
fd.close()
|
|
def validPort(port):
|
|
try:
|
|
port=int(port)
|
|
except ValueError:
|
|
return False
|
|
if port>0 and port<65536:
|
|
return port
|
|
else:
|
|
return False
|
|
if __name__ == '__main__':
|
|
pwd=path.dirname(path.realpath(__file__))
|
|
config=open(pwd+'/spoofident.json','r')
|
|
settings=load(config)
|
|
config.close()
|
|
server = dualstack.MultipleSocketsListener(settings['listeners'])
|
|
setgid(settings['setgid'])
|
|
setuid(settings['setuid'])
|
|
while True:
|
|
conn,addr=server.accept()
|
|
handleIdent(conn)
|