Fix für Alfred-Announce: OpenVPN auf 'none' eingestellt
parent
e90f08538e
commit
882a547567
5
README
5
README
|
@ -1 +1,6 @@
|
||||||
Achtung, Verwendung aller Programme auf eigene Gefahr!
|
Achtung, Verwendung aller Programme auf eigene Gefahr!
|
||||||
|
|
||||||
|
Vor Inbetriebnahme ist jedes Script daraufhin zu überprüfen,
|
||||||
|
ob noch Konfigurationseinstellungen vorgenommen werder müssen.
|
||||||
|
Z.B. muß bei ffgate-check die IP-Aresse des anzupingenden Hosts
|
||||||
|
eingetragen werden.
|
||||||
|
|
|
@ -104,12 +104,14 @@ def fn_node_net_mesh_ifaces():
|
||||||
for iface in map(lambda line: line.split(':')[0], call(['batctl', '-m', cfg['interface'], 'if']))]
|
for iface in map(lambda line: line.split(':')[0], call(['batctl', '-m', cfg['interface'], 'if']))]
|
||||||
|
|
||||||
def fn_exitvpn_provider():
|
def fn_exitvpn_provider():
|
||||||
# Wir arbeiten mit der Standardkonfigurationsdatei von OpenVPN.
|
"""
|
||||||
# Dort ist immer unser aktuell verwendeter Exit-Tunnel eingetragen.
|
Wir arbeiten mit der Standardkonfigurationsdatei von OpenVPN.
|
||||||
# Wenn OpenVPN konfiguriert ist, aber kein Tunnel verwendet wird,
|
Dort ist immer unser aktuell verwendeter Exit-Tunnel eingetragen.
|
||||||
# steht in der Konfiguration 'none'. Zur Unterscheidung wird im
|
Wenn OpenVPN konfiguriert ist, aber kein Tunnel verwendet wird,
|
||||||
# Fehlerfall 'n/a' zurückgeliefert. Das kommt z.B. vor, wenn
|
steht in der Konfiguration 'none'. Zur Unterscheidung wird im
|
||||||
# gar kein OpenVPN installiert ist.
|
Fehlerfall 'n/a' zurückgeliefert. Das kommt z.B. vor, wenn
|
||||||
|
gar kein OpenVPN installiert ist.
|
||||||
|
"""
|
||||||
try:
|
try:
|
||||||
for line in open('/etc/default/openvpn'):
|
for line in open('/etc/default/openvpn'):
|
||||||
if line.startswith('AUTOSTART='):
|
if line.startswith('AUTOSTART='):
|
||||||
|
@ -124,6 +126,8 @@ def fn_exitvpn_country():
|
||||||
ISO 3166 Country Code
|
ISO 3166 Country Code
|
||||||
"""
|
"""
|
||||||
provider = fn_exitvpn_provider()
|
provider = fn_exitvpn_provider()
|
||||||
|
if provider in ('none', 'n/a'):
|
||||||
|
return 'n/a'
|
||||||
for line in open('/etc/openvpn/' + provider.lower() + '.conf'):
|
for line in open('/etc/openvpn/' + provider.lower() + '.conf'):
|
||||||
if line.startswith('## ExitCountry = '):
|
if line.startswith('## ExitCountry = '):
|
||||||
k, v = line.split(" = ")
|
k, v = line.split(" = ")
|
||||||
|
|
|
@ -0,0 +1,26 @@
|
||||||
|
#!/usr/bin/env python
|
||||||
|
|
||||||
|
# Vergleiche
|
||||||
|
# dhcp-lease-list --lease /var/lib/dhcp/dhcpd.leases
|
||||||
|
|
||||||
|
import re
|
||||||
|
import datetime
|
||||||
|
|
||||||
|
def count_dhcp_leases():
|
||||||
|
regex_leaseblock = re.compile(r"lease (?P<ip>\d+\.\d+\.\d+\.\d+) {(?P<config>[\s\S]+?)\n}")
|
||||||
|
regex_properties = re.compile(r"\s+(?P<key>\S+) (?P<value>[\s\S]+?);")
|
||||||
|
leases = 0
|
||||||
|
with open("/var/lib/dhcp/dhcpd.leases") as lease_file:
|
||||||
|
macs = set()
|
||||||
|
for match in regex_leaseblock.finditer(lease_file.read()):
|
||||||
|
block = match.groupdict()
|
||||||
|
properties = {key: value for (key, value) in regex_properties.findall(block['config'])}
|
||||||
|
if properties['binding'].split(' ')[1] == 'active' and properties['ends'] != 'never':
|
||||||
|
dt_ends = datetime.datetime.strptime(properties['ends'][2:], "%Y/%m/%d %H:%M:%S")
|
||||||
|
if dt_ends > datetime.datetime.utcnow() and properties['hardware'].startswith('ethernet'):
|
||||||
|
macs.add(properties['hardware'][9:])
|
||||||
|
leases = len(macs)
|
||||||
|
return leases
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
print "%d unique active leases" % count_dhcp_leases()
|
Loading…
Reference in New Issue