Related posts:
]]>Bei Spamfilter V0.1 handelt es sich nicht um ein fertiges Produkt, bei dem die Datei auf den Server kopiert wird und alle Probleme mit Spam sind vergessen. Es handelt sich hierbei um ein API, dieser OpenSource PHP Code ist dazu da um in bestehende Projete eingebettet zu werden. Wie das im Detail funktioniert wird im Folgenden beschrieben. Wichtig hierbei ist es, dass der Zugriff auf die Quelle (Spamfilter Daten) nicht ausprogrammiert ist. An der Stelle steht ein TODO. An der Stelle kann man dann entscheiden, wie der Zugriff auf die Daten erfolgen soll. Möglich sind z.B. 2 Tabellen in einer existierenden Datenbank oder einfach nur Textdateien im CSV Format. Dies ist an der stelle offen, um eine einheitliche Architektur zur
umgebenden Anwendung einhalten zu können.
Download: spamfilter-0.1.zip
Die Funktion checkSpam ($text, $ip) kann mit belibigem Text und IP Adressen aufgerufen werden und gibt dann als Return Wert eine 0 oder eine 1 zurück. Ist der Returnwert eine 1, so handelt es sich um Spam. Ist der Returnwert dagegen eine 0, so handelt es sich nicht um Spam.
Die Leistungsfähigkeit des Spamfilters ist abhängig von der Konfiguration. Wesentliche Merkmale sind die Tabellen “badip” und “badword” und der Wert isspam der Konfiguration. Zusätzlich gibt es noch einen Wert noipval der zum Tragen kommt, wenn der Funktion checkSpam keine IP Adresse übergeben wird.
isspam - default = 10
Diese Konstante legt fest, wann es sich um Spam handelt und wann nicht. Ein zu geringer Wert kann hier zu einen Spamfilter führen, der auch schon mal falschen Alarm gibt. Eine zu kleine Zahl kann den Spamfilter unwirksam machen. Dieser Wert hat eine starke Abhängigkeit zu den Werten ‘value’ in den Tabellen. Wenn der Wert isspam kleiner ist als die Summe der Werte die während der Prüfungen ermittelt werden, handelt es sich um SPAM. Anderenfalls ist es kein SPAM.
spamprefix - defaul= "spam_"
Prefix für die Tabellen in der Datenbank. Diese Einstellung hat keinen Einfluss auf die Qualität des Spamfilters. Er dient lediglich dazu, die Tabellen des Spamfilters von anderen Tabellen in der Datenbank zu unterscheiden.
noipval - default = 0
Ein Wert, für den Fall, dass keine IP Adresse gefunden wird. D.H. Wenn der Funktion checkSpam keine IP Adresse übergenen wird, addiert sich dieser Wert automatisch zur spamvalue, die dann mit isspam verglichen wird. Hiermit kann man den Spamfilter noch ein wenig schäffer fassen, wenn man keine Angaben zur IP Adresse hat.
spamdebug - default = 0
Wenn der Wert spamdebug auf 1 gesetzt wird, werden Zwischenergebnisse ausgegeben, die es einfacher machen, die Funktionsweise des Spamfilters zu verstehen. Im laufenden Betrieb ist der Wert in jedem Fall auf 0 zu setzen. Der Wert hat keinen Einfluss auf die Arbeitsweise des Spamfilters.
Tabelle: spamprefix_badip
Diese Tabelle dient dazu, IP Adressen mit einem Wert für den Spamverdacht zu belegen. Diese Einträge sind nur relevant, wenn man die REMOTE-IP des Absenders zur Verfügung hat. Für Prüfungen existierender Einträge in der Datenbank die nicht mit Absender IP Adressen versehen sind, ist diese Tabelle nicht relevant. Wenn die IP Adresse des Absenders einem Eintrag in der Tabelle entspricht, wird der Wert ‘value’ des Tabelleneintrags dem Spamverdachtswert hinzuaddiert.
Spalten: ip -> IP Adresse value -> Der Spamwert, der dieser IP Adresse zugewiesen ist. Der Wert kann auch negativ sein, um den Spamverdacht für die betroffene IP-Adresse zu reduzieren
Tabelle: spamprefix_badword
In der Tabelle werden die einzenen Wörter mit einem Spamverdachtswert belegt. Dieser Wert wird dem gesammten Spamverdachtswert des zu prüfenden Textes hinzuaddiert, wenn das Wort in dem text enthalten ist. Es werden immer alle Wörter in der Tabelle geprüft. Vor der Verarbeitung der Tabelle wird der Text um alle Zeichen reduziert, die nicht in dem regulären Ausdruck enthalten sind. In der Grundeinstellung sind das alle Zeichen, außer den Buchstaben a-z, den Umlauten und den Zahlen. Bei den Werten für word ist darauf zu achten, nicht zu keine Wörter zu verwenden, da z.B. Wörter wie “DU” auch Teil des Wortes “DUrchgeführt” sind und damit hier einen Spamverdacht verursachen. Als praktikabel haben sich hier Wörter mit einer Mindestlänge von 4 Buchstaben herauskristalisiert. Es ist weiterhin sinnvoll, verschieden Worte mit unterschiedlichen Werten zu belegen. So kann z.B.
Casino, Viagra oder Download mit einen hohen Wert versehen werden, der größer oder gleich dem “isspam” Wert aus der ist. Andere Textteile wie z.B. “href” oder “www” kann man mit geringeren Werten versehen. Dann wird der “isspam” Wert erst erreicht, wenn diese Textpassagen mehrfach im Text vorkommen
Spalten: word -> Entält das betreffende Wort für das der Spamverdachtswert gilt. value -> Enthält den Spamverdachtswert für das Wort.
Sonstige Hinweise für einen erfolgreichen SPAM Filter:
Für einen erfolgreichen Spamfilter ist es nötig, die Werte von Zeit zu Zeit anzupassen. In diesem Zusammenhang macht es sinn, sich die geprüften Textpassagen mit den Spamfilterergebnissen in einer Datenbanktabelle zu merken und bei Ändeungen der Filterkriterien noch mal zu prüfen. Anhand der Ergebnisse dieser Tests, kann man sehr leicht feststellen, ob der Spamfilter nach den Ändeungen besser oder schlechter geworten ist.
Administration der Tabellen:
Für die Administration der Datenbanktabellen existiert momentan kein spezielles Werkzeug. Ich persönlich verwende phpMyAdmin. Wer Lust hat, kann aber auch gerne ein kleines Verwaltungswerkzeug schreiben. Ich werde es gerne dem Projekt hinzufügen.
Weiterführende Links:
Bot-Trap.de – GEMEINSAM gegen Content Grabber, Web Spam, Sauger
Bei dem Projekt Bot-Trap handelt es sich um eine Community, die es sich zum Ziel gesetzt hat,
auf der Basis von verschiedenen Kriterien gute Besucher und schlechte Besucher von Webseiten zu unterscheiden und die potentiell bösen Bots komplett von der Webseite fern zu halten. Im Gegensatz zu diesem Projekt wird die kompl. Webseite für potentielle Grabber, Sauger, Hijacker, Duplicate Content Bots, usw. gesperrt. Die hier zur Verfügung gestellte Liste der IP-Adressen kann man getrost für den Spam Filter verwenden. Sollte aber darauf achten, dass der Spamverdachtswert nicht zu hoch vergeben wird.
phpMyAdmin – MySQL Database Administration Tool
Das ultimative Werkzeug zum verwalten von MySQL Tabellen. Auch für Benutzer die keine SQL Kenntnisse haben sehr zu empfehlen. Eine MySQL Datenbnak ohne phpMyAdmin ist eigentlich nicht denkbar
Spamfilter V0.1 Copyright by Michael Jentsch
No related posts.
]]>Die Folgende Liste der ISO 3166-1 Ländercodes kann unter ISO 3166-1.xml heruntergeladen werden. Die Verarbeitung der XML Datei kann mit einem sehr simplen PHP Skript durchgeführt werden.
Ich habe schon mal eine HTML Select Box mit allen Ländern fertig gebaut und zum Download zur Verfügung gestellt. Die Datei enthält alle ISO 3166-1 Ländercodes eingebettet in eine HTML-Select Box. Vorausgewählt ist Deutschland.
<? $file = "iso_3166-1.xml"; $myobject = simplexml_load_file ($file); $myarray = object2array($myobject); foreach ($myarray["ISO_3166-1_Entry"] as $country) { $code = $country["ISO_3166-1_Country_name"]; $name = $country["ISO_3166-1_Alpha-2_Code_element"]; // Do something with code and name } function object2array($object) { $return = NULL; if(is_array($object)) { foreach($object as $key => $value) $return[$key] = object2array($value); } else { $var = get_object_vars($object); if($var) { foreach($var as $key => $value) $return[$key] = object2array($value); } else { return strval($object); // strval and everything is fine } } return $return; } ?>
AFGHANISTAN | AF |
ALBANIA | AL |
ALGERIA | DZ |
AMERICAN SAMOA | AS |
ANDORRA | AD |
ANGOLA | AO |
ANGUILLA | AI |
ANTARCTICA | AQ |
ANTIGUA AND BARBUDA | AG |
ARGENTINA | AR |
ARMENIA | AM |
ARUBA | AW |
AUSTRALIA | AU |
AUSTRIA | AT |
AZERBAIJAN | AZ |
BAHAMAS | BS |
BAHRAIN | BH |
BANGLADESH | BD |
BARBADOS | BB |
BELARUS | BY |
BELGIUM | BE |
BELIZE | BZ |
BENIN | BJ |
BERMUDA | BM |
BHUTAN | BT |
BOLIVIA | BO |
BOSNIA AND HERZEGOVINA | BA |
BOTSWANA | BW |
BOUVET ISLAND | BV |
BRAZIL | BR |
BRITISH INDIAN OCEAN TERRITORY | IO |
BRUNEI DARUSSALAM | BN |
BULGARIA | BG |
BURKINA FASO | BF |
BURUNDI | BI |
CAMBODIA | KH |
CAMEROON | CM |
CANADA | CA |
CAPE VERDE | CV |
CAYMAN ISLANDS | KY |
CENTRAL AFRICAN REPUBLIC | CF |
CHAD | TD |
CHILE | CL |
CHINA | CN |
CHRISTMAS ISLAND | CX |
COCOS (KEELING) ISLANDS | CC |
COLOMBIA | CO |
COMOROS | KM |
CONGO | CG |
CONGO, THE DEMOCRATIC REPUBLIC OF THE | CD |
COOK ISLANDS | CK |
COSTA RICA | CR |
COTE D’IVOIRE | CI |
CROATIA | HR |
CUBA | CU |
CYPRUS | CY |
CZECH REPUBLIC | CZ |
DENMARK | DK |
DJIBOUTI | DJ |
DOMINICA | DM |
DOMINICAN REPUBLIC | DO |
ECUADOR | EC |
EGYPT | EG |
EL SALVADOR | SV |
EQUATORIAL GUINEA | GQ |
ERITREA | ER |
ESTONIA | EE |
ETHIOPIA | ET |
FALKLAND ISLANDS (MALVINAS) | FK |
FAROE ISLANDS | FO |
FIJI | FJ |
FINLAND | FI |
FRANCE | FR |
FRENCH GUIANA | GF |
FRENCH POLYNESIA | PF |
FRENCH SOUTHERN TERRITORIES | TF |
GABON | GA |
GAMBIA | GM |
GEORGIA | GE |
GERMANY | DE |
GHANA | GH |
GIBRALTAR | GI |
GREECE | GR |
GREENLAND | GL |
GRENADA | GD |
GUADELOUPE | GP |
GUAM | GU |
GUATEMALA | GT |
GUERNSEY | GG |
GUINEA | GN |
GUINEA-BISSAU | GW |
GUYANA | GY |
HAITI | HT |
HEARD ISLAND AND MCDONALD ISLANDS | HM |
HOLY SEE (VATICAN CITY STATE) | VA |
HONDURAS | HN |
HONG KONG | HK |
HUNGARY | HU |
ICELAND | IS |
INDIA | IN |
INDONESIA | ID |
IRAN, ISLAMIC REPUBLIC OF | IR |
IRAQ | IQ |
IRELAND | IE |
ISLE OF MAN | IM |
ISRAEL | IL |
ITALY | IT |
JAMAICA | JM |
JAPAN | JP |
JERSEY | JE |
JORDAN | JO |
KAZAKHSTAN | KZ |
KENYA | KE |
KIRIBATI | KI |
KOREA, DEMOCRATIC PEOPLE’S REPUBLIC OF | KP |
KOREA, REPUBLIC OF | KR |
KUWAIT | KW |
KYRGYZSTAN | KG |
LAO PEOPLE’S DEMOCRATIC REPUBLIC | LA |
LATVIA | LV |
LEBANON | LB |
LESOTHO | LS |
LIBERIA | LR |
LIBYAN ARAB JAMAHIRIYA | LY |
LIECHTENSTEIN | LI |
LITHUANIA | LT |
LUXEMBOURG | LU |
MACAO | MO |
MACEDONIA, THE FORMER YUGOSLAV REPUBLIC OF | MK |
MADAGASCAR | MG |
MALAWI | MW |
MALAYSIA | MY |
MALDIVES | MV |
MALI | ML |
MALTA | MT |
MARSHALL ISLANDS | MH |
MARTINIQUE | MQ |
MAURITANIA | MR |
MAURITIUS | MU |
MAYOTTE | YT |
MEXICO | MX |
MICRONESIA, FEDERATED STATES OF | FM |
MOLDOVA, REPUBLIC OF | MD |
MONACO | MC |
MONGOLIA | MN |
MONTENEGRO | ME |
MONTSERRAT | MS |
MOROCCO | MA |
MOZAMBIQUE | MZ |
MYANMAR | MM |
NAMIBIA | NA |
NAURU | NR |
NEPAL | NP |
NETHERLANDS | NL |
NETHERLANDS ANTILLES | AN |
NEW CALEDONIA | NC |
NEW ZEALAND | NZ |
NICARAGUA | NI |
NIGER | NE |
NIGERIA | NG |
NIUE | NU |
NORFOLK ISLAND | NF |
NORTHERN MARIANA ISLANDS | MP |
NORWAY | NO |
OMAN | OM |
PAKISTAN | PK |
PALAU | PW |
PALESTINIAN TERRITORY, OCCUPIED | PS |
PANAMA | PA |
PAPUA NEW GUINEA | PG |
PARAGUAY | PY |
PERU | PE |
PHILIPPINES | PH |
PITCAIRN | PN |
POLAND | PL |
PORTUGAL | PT |
PUERTO RICO | PR |
QATAR | QA |
REUNION | RE |
ROMANIA | RO |
RUSSIAN FEDERATION | RU |
RWANDA | RW |
SAINT HELENA | SH |
SAINT KITTS AND NEVIS | KN |
SAINT LUCIA | LC |
SAINT PIERRE AND MIQUELON | PM |
SAINT VINCENT AND THE GRENADINES | VC |
SAMOA | WS |
SAN MARINO | SM |
SAO TOME AND PRINCIPE | ST |
SAUDI ARABIA | SA |
SENEGAL | SN |
SERBIA | RS |
SEYCHELLES | SC |
SIERRA LEONE | SL |
SINGAPORE | SG |
SLOVAKIA | SK |
SLOVENIA | SI |
SOLOMON ISLANDS | SB |
SOMALIA | SO |
SOUTH AFRICA | ZA |
SOUTH GEORGIA AND THE SOUTH SANDWICH ISLANDS | GS |
SPAIN | ES |
SRI LANKA | LK |
SUDAN | SD |
SURINAME | SR |
SVALBARD AND JAN MAYEN | SJ |
SWAZILAND | SZ |
SWEDEN | SE |
SWITZERLAND | CH |
SYRIAN ARAB REPUBLIC | SY |
TAIWAN, PROVINCE OF CHINA | TW |
TAJIKISTAN | TJ |
TANZANIA, UNITED REPUBLIC OF | TZ |
THAILAND | TH |
TIMOR-LESTE | TL |
TOGO | TG |
TOKELAU | TK |
TONGA | TO |
TRINIDAD AND TOBAGO | TT |
TUNISIA | TN |
TURKEY | TR |
TURKMENISTAN | TM |
TURKS AND CAICOS ISLANDS | TC |
TUVALU | TV |
UGANDA | UG |
UKRAINE | UA |
UNITED ARAB EMIRATES | AE |
UNITED KINGDOM | GB |
UNITED STATES | US |
UNITED STATES MINOR OUTLYING ISLANDS | UM |
URUGUAY | UY |
UZBEKISTAN | UZ |
VANUATU | VU |
VENEZUELA | VE |
VIET NAM | VN |
VIRGIN ISLANDS, BRITISH | VG |
VIRGIN ISLANDS, U.S. | VI |
WALLIS AND FUTUNA | WF |
WESTERN SAHARA | EH |
YEMEN | YE |
ZAMBIA | ZM |
ZIMBABWE | ZW |
Related posts:
]]>No related posts.
]]>URL Encoding ist mit den Bordmitteln von PHP relativ einfach umzusetzen. Es reicht der richtige Einsatz der Methoden rawurlencode, rawurldecode, urlencode und urldecode. Trotzdem möchte ich hier ein wenig die Hintergründe beleuchten.
Am Anfang stand die “RFC 1738″ (Uniform Resource Locators (URL) specification). In diesem Dokument ist der Korrekte Aufbau eines URLs beschrieben. Z.B. dass in Ordnern und Dateinamen statt einem Leerzeichen ein “ ″ im URL stehen muss.
In HTML Dokumenten müssen die Attribute der folgenden HTML-Tags nach RFC 1738 codiert werden. (A, APPLET, AREA, BASE, BGSOUND, BODY, EMBED, FORM, FRAME, IFRAME, ILAYER, IMG, OBJECT, SCRIPT, SOUND)
Die RFC 1738 Spezifikation sieht eine Kodierung aller Zeichen mit Ausnahme von 0-9, a-z, A-Z und “$-_.+!*’() vor. Alle anderen Zeichen sind als “Reservierte Zeichen” definiert und müssen daher bei der Verwendung mit einer der PHP Methoden (rawurlencode, urlencode) umgewandelt werden.
Beim Umwandeln von Zeichen in einem URL werden die ungültigen Sonderzeichen einfach in ihren Hex Code aufgelöst und dann mit einem % Zeichen versehen. Im Falle eines Leerzeichens währe es ein “ ″. Das hört sich erst mal einfach an, aber eine wichtige Information habe ich bisher noch unterschlagen. In URLs ist es leider so, dass die Methode zum codieren und decodieren abhängig davon ist an welcher Stelle im URL man sich befindet. Beispiel:
Aus dem URL http://www.testserver.de/mein verzeichnis/meine datei.php?name=Michael Jentsch wird nach einer erfolgreichen Kodierung der URL http://www.testserver.de/mein verzeichnis/meine datei.php?name=Michael+Jentsch
Auffällig hierbei ist das + Zeichen statt dem “ ″ zwischen Michael und Jentsch. Genaugenommen könnte man hier auch ein einfügen, aber ein Browser würde hier immer ein + Zeichen verwenden. Um dies nachahmen zu können muss man die beiden Methoden rawurlencode und urlencode verwenden.
Die Methode urlencode halt hier nicht an das im RFC 1738 beschriebenen Verfahren.
So könnte beispielsweise der PHP Code aussehen um einen URL zu codieren.
$part1 = “www.testserver.de/mein verzeichnis/meine datei.php”;
$part2 = “name=Michael Jentsch”;
$url = “http://” .rawurlencode ($part1) . “?” . urlencode($part2);
rawurlencode
Verfügbar in PHP 3, PHP 4 und PHP 5
Beschreibung:
string rawurlencode ( string str ) // URL-Kodierung nach RFC 1738
Diese Methode realisiert die Kodierung nach RFC 1738.
Link: http://php.net/manual/de/function.rawurlencode.php
rawurldecode
Verfügbar in PHP 3, PHP 4 und PHP 5
Beschreibung:
string rawurldecode ( string str ) // URL-Dekodierung nach RFC 1738
Diese Methode realisiert die Dekodierung nach RFC 1738.
Link: http://php.net/manual/de/function.rawurldecode.php
urlencode
Verfügbar in PHP 3, PHP 4 , PHP 5
Beschreibung:
string urlencode ( string str ) // URL Kodierung von Strings.
Diese Methode entspricht der Methode rawurlencode mit Ausnahme eines Zeichens. Das Leerzeichen wird nicht nach umgewandelt, sondern in ein + Zeichen. Diese Methode entspricht der Kodierung wie sie vom Browser verwendet wird, wenn Daten in einem Formular gesendet werden und mit application/x-www-form-urlencoded kodiert werden.
urldecode
Verfügbar in PHP 3, PHP 4 und PHP 5
Beschreibung:
string urldecode ( string str ) // URL Dekodierung von Strings.
Dekodiert jede %## Kodierung eines Strings und das Plus Zeichen. Der dekodierte String wird als Return Wert zurückgegeben.
Related posts:
]]>Der Java Network Monitor unterstützt Administratoren und Entwicklern bei der Entwicklung und Administration von Netzwerk Tools. Mit diesem Tool ist es möglich eine breite Palette an Informationen aus dem Netzerk Traffic zwischen Client und Server zu erhalten. Der Java Network Monitor ist in Java realisiert und läuft auf jedem belibigen Betriebssystem
für das es einen Java Interpreter gibt. Es ist mit dem Java Network Monitor möglich den Kompletten Netzwer Verkehr für ein oder mehrere Client/Server Systeme zu protokolieren.
Hierbei ist es egal, ob der Java Network Monitor auf dem Server, auf dem Client oder auf einem dritten System installiert ist. Mit dem Java Network Monitor können einzelne Ports überwacht und protokoliert werden. Der schnelle und einfache Zugriff auf die Informationen reduziert deutlich die Kosten bei Problemen zwischen Client und Server ohne dass hierfür teure Hard/Software eingekauft werden muss.
Worin besteht der Unterschied zu anderen Network Monitor Systemen?
Bei dem Programm handelt es sich nicht um eine globale Schnittstelle zur Netzwerk-Überwachung oder Filterung. Es ist eine Lösung um selektiv bestimmte Ports zu überwachen und zu Protokolieren. Mit dem Java Network Monitor kann also ganz gezielt auf einzelne Probleme eingegangen werden, ohne den gesammten Traffic auswerten zu müssen. Weiterhin ist der Java Network Monitor einfach und schnell um in kürzester Zeit Informationen zu erhalten und eigene Anforderungen umsetzen zu können. In Zusammenarbeit mit den Tools awk, sed, grep … erhält man eine mächtige Wafe im täglichen Kampf mit jeder belibigen Tcp/Ip Schnittstelle.
Für wen ist der Java Network Monitor?
Alle Entwickler, Administratoren und Netzwerk Techniker, die ein Tool zum überwachen von Tcp/IP Schnittstellen benötigen können den Java Network Monitor kostenlos verwenden.
Beispielanwendungen:
1. Protokollierung von HTTP Daten für einen bestimmten Server oder einen bestimmten Client.
2. Überwachung eines Samba Servers. Auf unberechtigen Zugriff sofort reagieren können
3. Auswertung von VNC Aufrufen um später einen Server automatisch fernsteuern zu können.
Neben der Überwachung und Protokolierung von Netzwerken ist es auch möglich nicht vorhandene Routen zu überbrücken.
Z.B. könnte man einen Oracle Server (DBServer) der nur von einem bestimmten Rechner (Produktionsserver) aus ansprechbar ist über diesen Produktionsserver der im Netz verfügbar ist zugreifbar machen. So könnte man das Arbeiten mit SQLPlus auf der Konsole (Produktionsserver) durch ein komfortables Arbeiten auf dem Desktop mit z.B. Toad oder anderen Datenbank Tools ermöglichen.
Wie protokoliere ich meinen HTTP Trafic zu einem Server unter Windows XP?
Beispiel: Mitschreiben der HTTP-Daten zu der Domain www.amazon.de in die Datei amazon-http.txt
1. Öffnen der Datei hosts im Ordner C:\WINDOWS\system32\drivers\etc mit einem Texteditor
2. Neue Zeile mit dem Inhalt “127.0.0.1 www.amazon.de” eintragen
3. Ausführen “java NetworkMonitor 127.0.0.1 80 www.amazon.de 80 > amazon-http.txt”
4. Im Browser “www.amazon.de” aufrufen.
Alle Daten die zwischen www.amazon.de und ihren PC ausgetauscht werden, können nun in der Datei amazon-http.txt nachgelesen werden.
Wo erhalte ich die die letzte Version von “Java Network Monitor”?
Der Download der letzen Version von “Java Network Monitor” ist unter http://m-software.de/ möglich.
Gibt es Support für den Java Network Monitor?
Ja. Technischer Support ist verfügbar für alle Nutzer des Java Network Monitors. Einfach eine Mail an [email protected] schreiben wenn die Antworten in diesem Dokument nicht ausreichen.
Related posts:
]]>Der Java Network Monitor ist ein kleines schlankes Programm, mit dem es möglich ist gezielt Netzwerkanalysen für ausgewählte Services (Sockets) durchzuführen. Java Network Monitor ist Freeware und kann privat und gewerblich eingesetzt werden.
Download Java Network Monitor V0.1
Aufruf:
java NetworkMonitor localHost localPort serverHost serverPort
localHost = Name oder IP Adresse des NetworkMonitors
localPort = Port des NetworkMonitors
serverHost = Name oder IP des Servers
serverPort = Port des Servers
Alle Daten die zwischen Client und Server über den Java NetworkMonitor übertragen werden werden auf der Konsole ausgegeben. Hierbei ist es egal, ob es sich um das HTTP Protokoll oder ein anderes Netzwer Protokoll wie z.B. POP3, SMTP, NNTP, X, SSH, … handelt. Alle Daten werden 1:1 übertragen und auf der Konsole ausgegeben.
Abgrenzung:
Der Java Network Monitor dient nicht zur Analyse von UDP Netzwerk Traffic.
Geplante Erweiterungen für zukünftige Versionen:
Neben TCP/IP Verbindungen auch UDP Verbindungen zu ermöglichen
Einheitliche Schnittstelle zur Integration von Netzwerk Protokoll Analyzern
HTTP Protokoll Analyzer integrieren
VNC Protokoll Analyzer integrieren
Java Network Monitor FAQ
THIS SOFTWARE IS PROVIDED “AS IS” AND ANY EXPRESSED OR IMPLIED WARRANTIES,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR
BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Related posts:
]]>Trennen von Domains und Subdomains ist ein Problem, dass einen durchschnittlichen Software Entwickler auf den ersten Blick nicht wirklich vor ein ernstes Problem stellt. Schnell einen entsprechenden regulären Ausdruck (RegExp) hingeworfen und schon kann man Domains von Subdomains unterscheiden.
z.B. \’^(www\\.)?[a-zA-Z0-9\\-]*\\.(?[a-zA-Z]*)$\’
Schade nur, dass es neben den üblichen Domains wie .de, .com, .net, .org und wie sie alle heißen auch noch andere Vertreter gibt. Es gibt eine nicht zu verachtende Menge von Domains, die dem Schema nicht folgen.
Z.B.
.co.uk, .com.br, .or.jp usw.
Domains in der Forum www.sex.or.jp sind also aus Sicht des Regulären Ausdrucks schon Subdomains. Es ist also unmöglich solche Domain von Subdomains zu unterscheiden ohne mit einer Liste von vorgegebenen TLDs zu arbeiten. Mal ganz davon abgesehen dass es sich streng genommen hierbei ja auch um Subdomains handelt und .or.jp auch nicht wirklich eine TLD ist. Ich nenne sie deshalb gerne auch \”TLD++\”
Zitat RFC 1591
In the Domain Name System (DNS) naming of computers there is a hierarchy of names. The root of system is unnamed. There are a set of what are called \”top-level domain names\” (TLDs). These are the generic TLDs (EDU, COM, NET, ORG, GOV, MIL, and INT), and the two letter country codes from ISO-3166.
Es bleibt also nichts anderes, als mit einer Liste zu arbeiten. Diese Liste muss alle TLD++ enthalten, die man als gültig erachtet. Aus der Liste Meine gesammelte Two Level Domain Liste aus aller Welt kann man aber sehr leicht ersehen, wie viele das sind.
An einem verregnetem Tag habe ich mir mal die Mühe gemacht, und die ca. 350 wichtigsten TLD++ aus der Liste gesucht und mit deren Hilfe einen regulären Ausdruck erstellt, der nur diese Domains und keine Subdomains (außer der Subdomain www) findet. Natürlich ist das immer sehr subjektiv, aber ich möchte den Ausdruck trotzdem hier veröffentlichen.
Das Shell Skript mit dem kompletten RegEx gibt es hier domain.sh.
Related posts:
]]>Dies ist eine Sammlung von Two Level Domains die ich aus verschiedenen Quellen zusammengetragen habe.
Hinweis: Diese Liste ist nicht vollständig.
Für Sachdienliche Hinweise zur Ergänzung dieser Liste bin ich immer dankbar!
.fed.us
.dni.us
.com.ac
.edu.ac
.gov.ac
.mil.ac
.net.ac
.org.ac
.ac.ae
.co.ae
.com.ae
.gov.ae
.net.ae
.org.ae
.pro.ae
.sch.ae
.com.ai
.edu.ai
.gov.ai
.org.ai
.com.ar
.edu.ar
.gov.ar
.int.ar
.mil.ar
.net.ar
.org.ar
.uba.ar
.e164.arpa
.ac.at
.co.at
.gv.at
.or.at
.priv.at
.asn.au
.com.au
.conf.au
.csiro.au
.edu.au
.gov.au
.id.au
.info.au
.net.au
.org.au
.otc.au
.oz.au
.telememo.au
.com.az
.net.az
.org.az
.com.bb
.net.bb
.org.bb
.ac.be
.belgie.be
.dns.be
.fgov.be
.com.bh
.edu.bh
.gov.bh
.net.bh
.org.bh
.com.bm
.edu.bm
.gov.bm
.net.bm
.org.bm
.art.br
.com.br
.etc.br
.g12.br
.gov.br
.ind.br
.inf.br
.mil.br
.net.br
.org.br
.psi.br
.rec.br
.sp.br
.tmp.br
.com.bs
.net.bs
.org.bs
.ab.ca
.bc.ca
.mb.ca
.nb.ca
.nf.ca
.nl.ca
.ns.ca
.nt.ca
.nu.ca
.on.ca
.pe.ca
.qc.ca
.sk.ca
.yk.ca
.co.ck
.edu.ck
.gov.ck
.net.ck
.org.ck
.ac.cn
.ah.cn
.bj.cn
.com.cn
.cq.cn
.edu.cn
.gd.cn
.gov.cn
.gs.cn
.gx.cn
.gz.cn
.hb.cn
.he.cn
.hi.cn
.hk.cn
.hl.cn
.hn.cn
.jl.cn
.js.cn
.ln.cn
.mo.cn
.net.cn
.nm.cn
.nx.cn
.org.cn
.qh.cn
.sc.cn
.sh.cn
.sn.cn
.sx.cn
.tj.cn
.tw.cn
.xj.cn
.xz.cn
.yn.cn
.zj.cn
.arts.co
.com.co
.edu.co
.firm.co
.gov.co
.info.co
.int.co
.mil.co
.nom.co
.org.co
.rec.co
.store.co
.web.co
.lkd.co.im
.plc.co.im
.au.com
.br.com
.cn.com
.de.com
.eu.com
.gb.com
.hu.com
.no.com
.qc.com
.ru.com
.sa.com
.se.com
.uk.com
.us.com
.uy.com
.za.com
.ac.cr
.co.cr
.ed.cr
.fi.cr
.go.cr
.or.cr
.sa.cr
.com.cu
.net.cu
.org.cu
.ac.cy
.com.cy
.gov.cy
.net.cy
.org.cy
.23ww.de
.co.dk
.art.do
.com.do
.edu.do
.gov.do
.mil.do
.net.do
.org.do
.web.do
.art.dz
.ass.dz
.com.dz
.edu.dz
.gov.dz
.net.dz
.org.dz
.pol.dz
.com.ec
.edu.ec
.fin.ec
.gov.ec
.k12.ec
.med.ec
.mil.ec
.net.ec
.org.ec
.com.eg
.edu.eg
.eun.eg
.gov.eg
.net.eg
.org.eg
.sci.eg
.biz.et
.com.et
.edu.et
.gov.et
.info.et
.name.et
.net.et
.org.et
.ac.fj
.com.fj
.gov.fj
.id.fj
.org.fj
.school.fj
.ac.fk
.com.fk
.gov.fk
.net.fk
.nom.fk
.org.fk
.aeroport.fr
.assedic.fr
.asso.fr
.avocat.fr
.avoues.fr
.barreau.fr
.cci.fr
.chambagri.fr
.chirurgiens-dentistes.fr
.com.fr
.experts-comptables.fr
.geometre-expert.fr
.gouv.fr
.greta.fr
.huissier-justice.fr
.medecin.fr
.nom.fr
.notaires.fr
.pharmacien.fr
.port.fr
.prd.fr
.presse.fr
.tm.fr
.veterinaire.fr
.com.ge
.edu.ge
.gov.ge
.mil.ge
.net.ge
.org.ge
.pvt.ge
.ac.gg
.alderney.gg
.co.gg
.gov.gg
.guernsey.gg
.ind.gg
.ltd.gg
.net.gg
.org.gg
.sark.gg
.sch.gg
.com.gu
.edu.gu
.gov.gu
.mil.gu
.net.gu
.org.gu
.com.hk
.edu.hk
.gov.hk
.idv.hk
.net.hk
.org.hk
.2000.hu
.agrar.hu
.bolt.hu
.casino.hu
.city.hu
.co.hu
.erotica.hu
.erotika.hu
.film.hu
.forum.hu
.games.hu
.hotel.hu
.info.hu
.ingatlan.hu
.jogasz.hu
.konyvelo.hu
.lakas.hu
.media.hu
.news.hu
.org.hu
.priv.hu
.reklam.hu
.sex.hu
.shop.hu
.sport.hu
.suli.hu
.szex.hu
.tm.hu
.tozsde.hu
.utazas.hu
.video.hu
.ac.id
.co.id
.go.id
.mil.id
.net.id
.or.id
.ac.il
.co.il
.gov.il
.idf.il
.k12.il
.muni.il
.net.il
.org.il
.ac.im
.co.im
.gov.im
.net.im
.nic.im
.org.im
.ac.in
.co.in
.ernet.in
.firm.in
.gen.in
.gov.in
.ind.in
.mil.in
.net.in
.nic.in
.org.in
.res.in
.ac.je
.co.je
.gov.je
.ind.je
.jersey.je
.ltd.je
.net.je
.org.je
.sch.je
.com.jo
.edu.jo
.gov.jo
.mil.jo
.net.jo
.org.jo
.ac.jp
.ad.jp
.aichi.jp
.akita.jp
.aomori.jp
.chiba.jp
.co.jp
.ed.jp
.ehime.jp
.fukui.jp
.fukuoka.jp
.fukushima.jp
.gifu.jp
.go.jp
.gov.jp
.gr.jp
.gunma.jp
.hiroshima.jp
.hokkaido.jp
.hyogo.jp
.ibaraki.jp
.ishikawa.jp
.iwate.jp
.kagawa.jp
.kagoshima.jp
.kanagawa.jp
.kanazawa.jp
.kawasaki.jp
.kitakyushu.jp
.kobe.jp
.kochi.jp
.kumamoto.jp
.kyoto.jp
.lg.jp
.matsuyama.jp
.mie.jp
.miyagi.jp
.miyazaki.jp
.nagano.jp
.nagasaki.jp
.nagoya.jp
.nara.jp
.ne.jp
.net.jp
.niigata.jp
.oita.jp
.okayama.jp
.okinawa.jp
.org.jp
.or.jp
.osaka.jp
.saga.jp
Related posts:
]]>Diese Liste der mir bekannten TLDs habe ich mal für einen Test zusammengetragen. Die Liste der TLDs hat keinen Anspruch auf Vollständigkeit.
.ac
.ad
.ae
.af
.ag
.ai
.al
.am
.an
.ao
.aq
.ar
.as
.at
.au
.aw
.az
.ax
.ba
.bb
.bd
.be
.bf
.bg
.bh
.bi
.bj
.bm
.bn
.bo
.br
.bs
.bt
.bv
.bw
.by
.bz
.ca
.cc
.cd
.cf
.cg
.ch
.ci
.ck
.cl
.cm
.cn
.co
.cr
.cs
.cu
.cv
.cx
.cy
.cz
.de
.dj
.dk
.dm
.do
.dz
.ec
.ee
.eg
.eh
.er
.es
.et
.eu
.fi
.fj
.fk
.fm
.fo
.fr
.ga
.gb
.gd
.ge
.gf
.gg
.gh
.gi
.gl
.gm
.gn
.gp
.gq
.gr
.gs
.gt
.gu
.gw
.gy
.hk
.hm
.hn
.hr
.ht
.hu
.id
.ie
.il
.im
.in
.io
.iq
.ir
.is
.it
.je
.jm
.jo
.jp
.ke
.kg
.kh
.ki
.km
.kn
.kp
.kr
.kw
.ky
.kz
.la
.lb
.lc
.li
.lk
.lr
.ls
.lt
.lu
.lv
.ly
.ma
.mc
.md
.mg
.mh
.mk
.ml
.mm
.mn
.mo
.mp
.mq
.mr
.ms
.mt
.mu
.mv
.mw
.mx
.my
.mz
.na
.nc
.ne
.nf
.ng
.ni
.nl
.no
.np
.nr
.nu
.nz
.om
.pa
.pe
.pf
.pg
.ph
.pk
.pl
.pm
.pn
.pr
.ps
.pt
.pw
.py
.qa
.re
.ro
.ru
.rw
.sa
.sb
.sc
.sd
.se
.sg
.sh
.si
.sj
.sk
.sl
.sm
.sn
.so
.sr
.st
.sv
.sy
.sz
.tc
.td
.tf
.tg
.th
.tj
.tk
.tl
.tm
.tn
.to
.tp
.tr
.tt
.tv
.tw
.tz
.ua
.ug
.uk
.um
.us
.uy
.uz
.va
.vc
.ve
.vg
.vi
.vn
.vu
.wf
.ws
.ye
.yt
.yu
.za
.zm
.zw
.su
.aero
.biz
.com
.coop
.info
.museum
.name
.net
.org
.pro
.gov
.edu
.pro
.mil
.int
.arpa
.jobs
.travel
.xxx
No related posts.
]]>