Scripts obsolètes.
This commit is contained in:
parent
05f9c4580d
commit
8a4d7dfd78
3 changed files with 0 additions and 0 deletions
|
@ -1,46 +0,0 @@
|
|||
#!/bin/bash /usr/scripts/python.sh
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
""" Pour détecter et signaler les collisions d'adresses IPv6 """
|
||||
|
||||
import psycopg2
|
||||
import sys
|
||||
import netaddr
|
||||
import itertools
|
||||
import gestion.ipt as ipt
|
||||
from gestion.config import prefix as crans_prefixes
|
||||
|
||||
## Construit un filtre sql succint des réseaux à vérifier
|
||||
|
||||
# (crans_prefixes est un dictionnaire de listes de networks, mais on se fout des
|
||||
# clés, donc on concatène méchamment)
|
||||
prefixes = itertools.chain(['fe80::/64'], *crans_prefixes.values())
|
||||
# Et on ne garde que le plus utile (histoire de faire moins de tests plus tard)
|
||||
prefixes = netaddr.cidr_merge(prefixes)
|
||||
prefixes = " OR \n".join( "a.ip <<= inet '%s'" % str(cidr) for cidr in prefixes)
|
||||
|
||||
# Connection à la base sql via pgsql
|
||||
pgsql = psycopg2.connect(database='filtrage', user='crans')
|
||||
# Il faudra remplacer la ligne ci-dessous par pgsql.set_session(autocommit = True) sous wheezy
|
||||
pgsql.set_isolation_level(0)
|
||||
curseur = pgsql.cursor()
|
||||
|
||||
# On regarde s'il y a deux ipv6 identiques avec des mac non identiques
|
||||
collision_mac_ip_request = """SELECT DISTINCT
|
||||
a.date as date1, a.mac as mac1, a.ip as ip1,
|
||||
b.date as date2, b.mac as mac2, b.ip as ip2
|
||||
FROM mac_ip as a, mac_ip as b
|
||||
WHERE a.ip = b.ip AND
|
||||
(%s) AND
|
||||
a.mac != b.mac AND
|
||||
a.date >= b.date AND
|
||||
a.date - b.date < interval '3 day'
|
||||
ORDER BY a.date;""" % prefixes
|
||||
curseur.execute(collision_mac_ip_request)
|
||||
collision_mac_ip = curseur.fetchall()
|
||||
|
||||
if collision_mac_ip != []:
|
||||
print "Collision d'addresses ipv6 : "
|
||||
for (date1, mac1, ip1, date2, mac2, ip2) in collision_mac_ip:
|
||||
print "%s %s %s" % (date1, ipt.mac_addr(mac1), ip1)
|
||||
print "%s %s %s" % (date2, ipt.mac_addr(mac2), ip2)
|
Loading…
Add table
Add a link
Reference in a new issue