mirror of
https://github.com/iio612/DEFENDER.git
synced 2026-02-13 19:24:23 +00:00
Adding Geoip to the UserModel
This commit is contained in:
@@ -18,6 +18,7 @@ class User:
|
|||||||
isWebsocket: bool
|
isWebsocket: bool
|
||||||
remote_ip: str
|
remote_ip: str
|
||||||
score_connexion: int
|
score_connexion: int
|
||||||
|
geoip: str = None
|
||||||
connexion_datetime: datetime = field(default=datetime.now())
|
connexion_datetime: datetime = field(default=datetime.now())
|
||||||
|
|
||||||
UID_DB: list[UserModel] = []
|
UID_DB: list[UserModel] = []
|
||||||
|
|||||||
15
core/irc.py
15
core/irc.py
@@ -813,6 +813,7 @@ class Irc:
|
|||||||
self.Base.logs.error(f'Index Error: {ie}')
|
self.Base.logs.error(f'Index Error: {ie}')
|
||||||
|
|
||||||
case 'UID':
|
case 'UID':
|
||||||
|
try:
|
||||||
# ['@s2s-md/geoip=cc=GB|cd=United\\sKingdom|asn=16276|asname=OVH\\sSAS;s2s-md/tls_cipher=TLSv1.3-TLS_CHACHA20_POLY1305_SHA256;s2s-md/creationtime=1721564601',
|
# ['@s2s-md/geoip=cc=GB|cd=United\\sKingdom|asn=16276|asname=OVH\\sSAS;s2s-md/tls_cipher=TLSv1.3-TLS_CHACHA20_POLY1305_SHA256;s2s-md/creationtime=1721564601',
|
||||||
# ':001', 'UID', 'albatros', '0', '1721564597', 'albatros', 'vps-91b2f28b.vps.ovh.net',
|
# ':001', 'UID', 'albatros', '0', '1721564597', 'albatros', 'vps-91b2f28b.vps.ovh.net',
|
||||||
# '001HB8G04', '0', '+iwxz', 'Clk-A62F1D18.vps.ovh.net', 'Clk-A62F1D18.vps.ovh.net', 'MyZBwg==', ':...']
|
# '001HB8G04', '0', '+iwxz', 'Clk-A62F1D18.vps.ovh.net', 'Clk-A62F1D18.vps.ovh.net', 'MyZBwg==', ':...']
|
||||||
@@ -826,6 +827,7 @@ class Irc:
|
|||||||
hostname = str(original_response[7])
|
hostname = str(original_response[7])
|
||||||
umodes = str(original_response[10])
|
umodes = str(original_response[10])
|
||||||
vhost = str(original_response[11])
|
vhost = str(original_response[11])
|
||||||
|
|
||||||
if not 'S' in umodes:
|
if not 'S' in umodes:
|
||||||
remote_ip = self.Base.decode_ip(str(original_response[13]))
|
remote_ip = self.Base.decode_ip(str(original_response[13]))
|
||||||
else:
|
else:
|
||||||
@@ -838,6 +840,15 @@ class Irc:
|
|||||||
|
|
||||||
realname = ' '.join(realname_list)[1:]
|
realname = ' '.join(realname_list)[1:]
|
||||||
|
|
||||||
|
# Extract Geoip information
|
||||||
|
pattern = r'^.*geoip=cc=(\S{2}).*$'
|
||||||
|
geoip_match = re.match(pattern, original_response[0])
|
||||||
|
|
||||||
|
if geoip_match:
|
||||||
|
geoip = geoip_match.group(1)
|
||||||
|
else:
|
||||||
|
geoip = None
|
||||||
|
|
||||||
score_connexion = self.first_score
|
score_connexion = self.first_score
|
||||||
|
|
||||||
self.User.insert(
|
self.User.insert(
|
||||||
@@ -852,6 +863,7 @@ class Irc:
|
|||||||
isWebirc=isWebirc,
|
isWebirc=isWebirc,
|
||||||
isWebsocket=isWebsocket,
|
isWebsocket=isWebsocket,
|
||||||
remote_ip=remote_ip,
|
remote_ip=remote_ip,
|
||||||
|
geoip=geoip,
|
||||||
score_connexion=score_connexion,
|
score_connexion=score_connexion,
|
||||||
connexion_datetime=datetime.now()
|
connexion_datetime=datetime.now()
|
||||||
)
|
)
|
||||||
@@ -860,6 +872,9 @@ class Irc:
|
|||||||
for classe_name, classe_object in self.loaded_classes.items():
|
for classe_name, classe_object in self.loaded_classes.items():
|
||||||
classe_object.cmd(original_response)
|
classe_object.cmd(original_response)
|
||||||
|
|
||||||
|
except Exception as err:
|
||||||
|
self.Base.logs.error(f'General Error: {err}')
|
||||||
|
|
||||||
case 'PRIVMSG':
|
case 'PRIVMSG':
|
||||||
try:
|
try:
|
||||||
# Supprimer la premiere valeur
|
# Supprimer la premiere valeur
|
||||||
|
|||||||
@@ -298,8 +298,7 @@ class Clone():
|
|||||||
case 'list':
|
case 'list':
|
||||||
try:
|
try:
|
||||||
for clone_name in self.Clone.UID_CLONE_DB:
|
for clone_name in self.Clone.UID_CLONE_DB:
|
||||||
self.Irc.send2socket(f':{dnickname} NOTICE {fromuser} :>> {clone_name.nickname} | {clone_name.username}')
|
self.Irc.send2socket(f':{dnickname} NOTICE {fromuser} :>> Nickname: {clone_name.nickname} | Username: {clone_name.username}')
|
||||||
pass
|
|
||||||
except Exception as err:
|
except Exception as err:
|
||||||
self.Logs.error(f'{err}')
|
self.Logs.error(f'{err}')
|
||||||
|
|
||||||
|
|||||||
@@ -1633,6 +1633,7 @@ class Defender():
|
|||||||
self.Irc.send2socket(f':{dnickname} NOTICE {fromuser} : HOSTNAME : {UserObject.hostname}')
|
self.Irc.send2socket(f':{dnickname} NOTICE {fromuser} : HOSTNAME : {UserObject.hostname}')
|
||||||
self.Irc.send2socket(f':{dnickname} NOTICE {fromuser} : VHOST : {UserObject.vhost}')
|
self.Irc.send2socket(f':{dnickname} NOTICE {fromuser} : VHOST : {UserObject.vhost}')
|
||||||
self.Irc.send2socket(f':{dnickname} NOTICE {fromuser} : IP : {UserObject.remote_ip}')
|
self.Irc.send2socket(f':{dnickname} NOTICE {fromuser} : IP : {UserObject.remote_ip}')
|
||||||
|
self.Irc.send2socket(f':{dnickname} NOTICE {fromuser} : Country : {UserObject.geoip}')
|
||||||
self.Irc.send2socket(f':{dnickname} NOTICE {fromuser} : WebIrc : {UserObject.isWebirc}')
|
self.Irc.send2socket(f':{dnickname} NOTICE {fromuser} : WebIrc : {UserObject.isWebirc}')
|
||||||
self.Irc.send2socket(f':{dnickname} NOTICE {fromuser} : WebWebsocket : {UserObject.isWebsocket}')
|
self.Irc.send2socket(f':{dnickname} NOTICE {fromuser} : WebWebsocket : {UserObject.isWebsocket}')
|
||||||
self.Irc.send2socket(f':{dnickname} NOTICE {fromuser} : REPUTATION : {UserObject.score_connexion}')
|
self.Irc.send2socket(f':{dnickname} NOTICE {fromuser} : REPUTATION : {UserObject.score_connexion}')
|
||||||
|
|||||||
Reference in New Issue
Block a user