Beiträge

Events, Catering und Hochzeiten in Ibiza?

Du bist auf Ibiza und brauchst die nötige Unterstützung bei einem Event, Catering oder einer Hochzeit?

Flying Pig Ibiza hat uns für Customizing und Weiterentwicklung on Board geholt.

Lektorat leicht gemacht

Übersetzung und Lektorat einfach Online kalkulieren und bestellen.

Für Customizing, Weiterentwicklung und Anpassung des Online Portales der Cambridge Editing AG aus der Schweiz sind wir der gesetzte Partner.

auktionsende.com – endless scroll

Für alle Schnäppchenjäger, die das ständige Aktualisieren der Ansicht nervt gibt es nun ein willkommens Update.

Es wurde ein „endless Scroll“ eingebunden, der die nächsten Auktionen lädt sobald man am Ende der Seite angekommen ist. (Die Suche im oberen Bereich wird natürlich bei den nächsten Ergebnissen berücksichtigt)

-> http://www.auktionsende.com

IPv4/IPv6 Dualstack Traffic Analyse

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;"

 

IPv4/IPv6 Test zum einbinden

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)
?email=<email_address> (Wochenstatistik per Mail und Graph)

ipv6_test_screen

 

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

Statistik: Positive IPv4 / IPv6 Checks der letzten Monate:

auktionsende.com

auktionsendeWer „kramt“ nicht schoneinmal in – bald auslaufenden – ebay Auktionen um ein paar Schnäppchen zu finden? ;)

 

 

Der Gedanke ist nett, jedoch sehr mühsam da es seitens ebay leider keine Möglichkeit gibt, sich alle bald auslaufenden Auktionen anzeigen zu lassen.

Aus dieser Erkenntnis und 4 Stunden freier Zeit, wurde genau diese Möglichkeit geschaffen ;)

–> http://www.auktionsende.com

– Es werden alle – bisher gelisteten – Auktionen nach Laufzeit angezeigt
– Suchfunktion
– Markierfunktion

Das einholen der Auktionen wird von einem – dafür erstelltem – Crawler-Netzwerk gemanaged.

Zum Start wird nur ein Auktionsportal behandelt – dessen Namen jeder kennen sollte – ;)
Nach erster Test- /Onlinephase, werden weitere Auktionsportale folgen.

  • Es lässt sich sehr wohl das ein oder andere Schnäppchen finden
  • Verkäufer und Auktionsplattform profitieren, da im letzten Moment weitere Gebote abgegeben werden

Da wir hier natürlich von etwas sprechen, was sich zwischen „alpha“ und „beta“ befindet ist natürlich jegliches Feedback willkommen ;)

update #1 – 20.01.2013 – 22:21
Die „Enter-Taste“ konnte nicht im Suchfeld benutzt werden. <– funktioniert jetzt ;)

update #2 – 20.01.2013 – 22:55
Ein Ansichtsfehler wurde behoben, der auf Apple-Retina-Displays das Layout zerissen hat ;)

Rainbowtable

Zielsetzung: Erstellung einer „Big-Data“ Anwendung, die sowohl das automatische erstellen, erweitern, verwalten und speichern einer große Rainbowtable ermöglicht. Ziel war es Tabellen für Hash-Verfahren wie md5(), sha1(), MySQL4() und MySQL5() vorhalten zu können.

String länge: 0-100 Zeichen

 

Screenshot – PHPMyAdmin

Wie sich im Screenshot sehr schöne erkennen lässt wurde hierzu ein besonderes Schema innerhalb von MySQL verwendet.
(Wie genau das Schema innerhalb der jeweiligen Datenbanken/Tabellen aufgebaut wurde wird hier nicht preis gegeben)

Relativ zeitnah wurde eine Anzahl von „350 Millionen“ unterschiedlichen Strings erreicht.

Vorgehalten wurde der eigentliche String des Passwortes, sowie die dazugehörigen „hash-werte“ in:

  • md5()
  • mysql4()
  • mysql5()
  • sha1()

Durch ein spezielle entwickeltes Schema – welches sich selbst zur Indexierung benutzt – brauchten innerhalb der gesamten Hash-Datenbanken keinerlei Indizierungsmaßnahmen vorgenommen werden.

 Sprich, keinerlei Zeitverlust beim Eintragen neuer Inhalte

Ebenso wurde für die Rückwärtsauflösung hash->string ein spezielles Indexierungsverfahren gewählt welches sich oben im Screenshot erkenn lässt.

Lediglich die 2 Datenbanken „rb__index“ und „rb_md5“ führen überhaupt Indexe.

rb_md5 mit 28 Gigabyte
rb__index mit 3.5 Gigabyte

Diese Indexe reichen aus um sämtliche Datenbanken zu befüllen und abzufragen.

Besonderer Wert wurde auf die Performance der Anwendung gelegt.

Die Wahl der Struktur und Umsetzung wurde von einem weiteren Faktor begleitet.
So muss es ohne großen Aufwand – jederzeit – möglich sein neue Krypto Funktionen hineinzunehmen.

Warteseite – Webserver start

Immer wieder stößt man während eines laufenden Projektes, auf nette und vor allem neue Gimmicks ;)

Zielsetzung: Den „http Aufruf“ eines Browser vor dem „start eines Webservers“ abzufangen, eine Warteseite anzeigen und eine Weiterleitung auszuführen sobald der Webserver online ist.

[jwplayer mediaid=“141″]

Konkretes Szenario hier ist, dass – nur wenn ein Benutzer „eine Bestimmte“ Interaktion auf der Website auslöst – muss ein zweiter Webserver gestartet werden und ein automatischer redirect erfolgen.

Skills: HTML, JavaScript, JQuery, PHP

Toolbar – Chat, Suchfunktion und Freundesliste

Zielsetzung: Die Erstellung einer Toolbar welche am unteren Rand des Browsers dockt und die gängigsten Social-Network Funktionen wie Chat, Freunde und Nachrichten kombiniert.

[jwplayer mediaid=“151″]

Skills:  Apache, HTML, JavaScript, JQuery, MySQL, PHP