ipv6_logoWenn man schon IPv4 und IPv6 aktiviert und seine Dienste über beide Protokolle zur Verfügung stellt, möchte man manchmal auch wissen wie viel Traffic über die einzelnen Wege zustande kommt.

Anbei ein kleines Shellscript welches Apache-acceslogs vom gestrigen Tag auswertet.
Ontop zu einem regulären IPv4/IPv6 Test – Goldwert :-)

Man wundere sich nicht über den etwas sehr abgespaceten IPv6 Regex :-)

Dies lässt sich natürlich beliebig auf Dienste wie Mail, FTP usw erweitern.

#!/bin/bash

# title: apache duals stack traffic analyse
# contact: basti@baebeca.de
# source: baebeca.de
# article: http://blog.baebeca.de/2013/02/20/ipv4ipv6-dualstack-traffic-analyse/
# date: 20130216
# version: v.1.0

# ipv4 regex validation / visits
cat /var/log/apache2/access*.log | grep $(date -d yesterday +%d/%b/%Y) | grep -E '[0-9]{1,3}(\.[0-9]{1,3}){3}' | grep -v "(internal dummy connection)" | grep -v "Monitoring" | grep -v "Python-urllib" | grep -v "get_crawler.php" > /var/log/apache_traffic_ipv4

IPV4_VISITS=`cat /var/log/apache_traffic_ipv4 | wc -l`
echo "$IPV4_VISITS IPv4 visits"
echo ""

# ipv6 regex validation / visits
# ipv6 grep regex by Dicky (http://www.violato.net/blog/others/40-ipv6-regex-validation)
cat /var/log/apache2/access*.log | grep $(date -d yesterday +%d/%b/%Y) | grep -E '((([0-9A-Fa-f]{1,4}:){7}(([0-9A-Fa-f]{1,4})|:))|(([0-9A-Fa-f]{1,4}:){6}(:|((25[0-5]|2[0-4]\d|[01]?\d{1,2})(\.(25[0-5]|2[0-4]\d|[01]?\d{1,2})){3})|(:[0-9A-Fa-f]{1,4})))|(([0-9A-Fa-f]{1,4}:){5}((:((25[0-5]|2[0-4]\d|[01]?\d{1,2})(\.(25[0-5]|2[0-4]\d|[01]?\d{1,2})){3})?)|((:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}:){4}(:[0-9A-Fa-f]{1,4}){0,1}((:((25[0-5]|2[0-4]\d|[01]?\d{1,2})(\.(25[0-5]|2[0-4]\d|[01]?\d{1,2})){3})?)|((:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}:){3}(:[0-9A-Fa-f]{1,4}){0,2}((:((25[0-5]|2[0-4]\d|[01]?\d{1,2})(\.(25[0-5]|2[0-4]\d|[01]?\d{1,2})){3})?)|((:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}:){2}(:[0-9A-Fa-f]{1,4}){0,3}((:((25[0-5]|2[0-4]\d|[01]?\d{1,2})(\.(25[0-5]|2[0-4]\d|[01]?\d{1,2})){3})?)|((:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}:)(:[0-9A-Fa-f]{1,4}){0,4}((:((25[0-5]|2[0-4]\d|[01]?\d{1,2})(\.(25[0-5]|2[0-4]\d|[01]?\d{1,2})){3})?)|((:[0-9A-Fa-f]{1,4}){1,2})))|(:(:[0-9A-Fa-f]{1,4}){0,5}((:((25[0-5]|2[0-4]\d|[01]?\d{1,2})(\.(25[0-5]|2[0-4]\d|[01]?\d{1,2})){3})?)|((:[0-9A-Fa-f]{1,4}){1,2})))|(((25[0-5]|2[0-4]\d|[01]?\d{1,2})(\.(25[0-5]|2[0-4]\d|[01]?\d{1,2})){3})))' | grep -v "(internal dummy connection)" | grep -v "Monitoring" | grep -v "Python-urllib" | grep -v "get_crawler.php" > /var/log/apache_traffic_ipv6

IPV6_VISITS=`cat /var/log/apache_traffic_ipv6 | wc -l`
echo "$IPV6_VISITS IPv6 visits"
echo ""

# mysql inserts for statistics
# ipv4
mysql -u root -p<pass> <database> -e "INSERT INTO <table> SET date = '$(date --date='(date -d yesterday +%d/%b/%Y) 00:00:01 UTC+1 -86401 second' +%s)', apache_traffic_ipv4=$IPV4_VISITS ON DUPLICATE KEY UPDATE apache_traffic_ipv4=$IPV4_VISITS;"

# ipv6
mysql -u root -p<pass> <database> -e "INSERT INTO <table> SET date = '$(date --date='(date -d yesterday +%d/%b/%Y) 00:00:01 UTC+1 -86401 second' +%s)', apache_traffic_ipv6=$IPV6_VISITS ON DUPLICATE KEY UPDATE apache_traffic_ipv6=$IPV6_VISITS;"

 

Oder einfach Online ansehen.
Vorschaubild_Katalog_2013

Lebst du noch oder IPv6′st du schon :-}

Nun gibt es unseren IPv4 / IPv6 Test für alle Websites zum einbinden.

Die Einbindung erfolgt relativ simpel per Javascript. Einfach den folgenden Code im <body> einbinden. Bei Bedarf kann das Layout und Funktionen mittels Parameter in der URL angepasst werden.

<script src="https://www.baebeca.de/six/six.php"></script>

Folgende Parameter in der URL sind optional möglich:

?left=<0-100> (Prozentangabe - Horizontale Position von Links)
?hide=true (Check wird ausgeführt, jedoch nicht angezeigt)

ipv6_test_screen

Demo: https://www.baebeca.de/six/

Sofern weitere Anpassungsmöglichkeiten gewünscht sind, bitte bescheid geben ;)
Diese werden dann natürlich ergänzt.

Ein Phönix in silber-grau! Schick ;-)
www.kerkom-it.de

textilien_vankerkom01 textilien_vankerkom02

DJ – 4-rent!
Aufkleber-Geschäftspapiere-Inserate
printmedien_becker

READY… Folie auf Dibond, eine saubere & schicke Sache :-)

Schilder_01 Schilder_02 Schilder_03 Schilder_04

Taschen für die „Technische Hilfeleistung“ … und beschriftet noch praktischer!

feuerwehr_taschen_01

Noch schnell die Veranstalterdaten drucken & kleben und dann gehts los!
Samstag 20.04.2013, Steinmüllergelände Gummersbach.
Infos und Kartenverkauf siehe hier!
Wir freuen uns und sind natürlich dabei :-)

Plakat_brings_01 Plakat_brings_02 Plakat_brings_03

 

 

Neue Shirts für die Tischlerei Bauer

IMG_1566 IMG_1564