Softwareentwicklung, SEO und mehr» Archiv http://m-software.de Software und IT Blog                                            Michael Jentsch Fri, 12 Oct 2012 18:46:33 +0000 de-DE hourly 1 http://wordpress.org/?v=3.4.2 PHP Feedreader http://m-software.de/feedreader-html http://m-software.de/feedreader-html#comments Fri, 08 Oct 2010 12:46:39 +0000 Michael Jentsch http://m-software.de/?p=312
  • php Feedreader 3.1 released
  • ]]>
    PHP Feedreader ist ein AJAX Basierter Web 2.0 Feedreader, mit dem man alle RSS/Atom Feeds im Blick behalten kann. Die Homepage des PHPFeadreaders ist http://sourceforge.net/projects/phpfeedreader/.

    Related posts:

    1. php Feedreader 3.1 released
    ]]>
    http://m-software.de/feedreader-html/feed 0
    Spamfilter V0.1 http://m-software.de/der-spamfilter-dient-dazu-vor-der-verarbeitung-von-formularen-den-inhalt-des-formulars-und-die-ip-adresse-des-absenders-auf-diverse-spam-kriterien-zu-prufen-der-spam-filter-kann-aber-auch-nachtragl http://m-software.de/der-spamfilter-dient-dazu-vor-der-verarbeitung-von-formularen-den-inhalt-des-formulars-und-die-ip-adresse-des-absenders-auf-diverse-spam-kriterien-zu-prufen-der-spam-filter-kann-aber-auch-nachtragl#comments Fri, 08 Oct 2010 12:44:08 +0000 Michael Jentsch http://m-software.de/?p=309 Der Spamfilter dient dazu vor der Verarbeitung von Formularen den Inhalt des Formulars und die IP Adresse des Absenders auf diverse SPAM Kriterien zu prüfen. Der Spam Filter kann aber auch nachträglich verwendet werden. So ist es möglich, dass man Einträge die schon in der Datenbank existieren geprüft werden. Der Spamfilter unterscheidet nicht zwischen Großbuchstaben und Kleinbuchstaben. Er Ignoriert Füllzeichen wie z.B. Sterne, Leerzeichen und Zeilenumbrüche.

    Hinweis zum Spamfilter

    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.

    Spamfilter Download

    Download: spamfilter-0.1.zip

    Spamfilfer Beschreibung

    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.

    Spamfilter Konfiguration

    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.

    Spamfilter Tabellen

    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.

    ]]>
    http://m-software.de/der-spamfilter-dient-dazu-vor-der-verarbeitung-von-formularen-den-inhalt-des-formulars-und-die-ip-adresse-des-absenders-auf-diverse-spam-kriterien-zu-prufen-der-spam-filter-kann-aber-auch-nachtragl/feed 0
    ISO 3166-1 Liste http://m-software.de/iso-3166-1-html http://m-software.de/iso-3166-1-html#comments Thu, 07 Oct 2010 08:26:30 +0000 Michael Jentsch http://m-software.de/?p=301
  • Two Level Domain Liste
  • TLD Liste
  • IPTC Felder
  • ]]>
    Liste der ISO 3166-1 Ländercodes

    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:

    1. Two Level Domain Liste
    2. TLD Liste
    3. IPTC Felder
    ]]>
    http://m-software.de/iso-3166-1-html/feed 0
    README zur OpenSearch API http://m-software.de/opensearch-readme-html http://m-software.de/opensearch-readme-html#comments Thu, 07 Oct 2010 08:21:41 +0000 Michael Jentsch http://m-software.de/?p=296 NAME: phpOpenSearch - the PHP OpenSearch Client API VERSION: 1.0.0 DATE: 07.03.2007 AUTHORS: Michael Jentsch http://m-software.de/ MAILING LISTS: There is no mailing list at the moment. Please send your feedback to the author. SYNOPSIS: require("OpenSearch.php"); $searchclient = new OpenSearchClient("opensearch.xml"); $searchclient->search ("Java",10,1,1); $results = $searchclient->getResults(); var_dump ($results); REQUIRE: * PHP Version 5.0 DESCRIPTION: What is phpOpenSearch? phpOpenSearch is a OpenSearch Client API for PHP. It is designed for A9 OpenSearch compatible engines. With phpOpenSearch you can use the results of A9 OpenSearch compatible searchengines within your PHP Scripts. phpOpenSearch is easy to use and very fast in processing querys and results. Some of the OpenSearch features: * 100% A9 OpenSearch compatible. * easy to use. * extremely fast. * and many more. TODO: * error handling * logging COPYRIGHT: Copyright (c) 2006-2007 Michael Jentsch (M-Software.de). All rights reserved. This software is released under the GNU Lesser General Public License. Please read the disclaimer at the top of the OpenSearch.php file.

    No related posts.

    ]]>
    http://m-software.de/opensearch-readme-html/feed 0
    PHP Urlencode http://m-software.de/php-urlencode http://m-software.de/php-urlencode#comments Thu, 07 Oct 2010 08:17:41 +0000 Michael Jentsch http://m-software.de/?p=293
  • PHP Cache V0.1 – M-Software.de
  • WordPress XML-RPC Ping-Dienst
  • ]]>
    URL Encoding mit PHP nach RFC 1738

    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:

    1. PHP Cache V0.1 – M-Software.de
    2. WordPress XML-RPC Ping-Dienst
    ]]>
    http://m-software.de/php-urlencode/feed 0
    Java Network Monitor FAQ http://m-software.de/java-network-monitor-faq-jsp http://m-software.de/java-network-monitor-faq-jsp#comments Thu, 07 Oct 2010 08:13:22 +0000 Michael Jentsch http://m-software.de/?p=288
  • Java Network Monitor
  • Mobile Games – Spieleprogrammierung für Handys mit Java ME von Thomas Lucka
  • Oracle verklagt Google wegen Java in Android
  • ]]>
    Wozu ist der Java Network Monitor zu gebrauchen?

    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:

    1. Java Network Monitor
    2. Mobile Games – Spieleprogrammierung für Handys mit Java ME von Thomas Lucka
    3. Oracle verklagt Google wegen Java in Android
    ]]>
    http://m-software.de/java-network-monitor-faq-jsp/feed 0
    Java Network Monitor http://m-software.de/java-network-monitor-jsp http://m-software.de/java-network-monitor-jsp#comments Thu, 07 Oct 2010 08:11:17 +0000 Michael Jentsch http://m-software.de/?p=287
  • Mobile Games – Spieleprogrammierung für Handys mit Java ME von Thomas Lucka
  • Oracle verklagt Google wegen Java in Android
  • Mobile Games – Spieleprogrammierung für Handys mit Java ME von Thomas Lucka
  • ]]>
    Der Java Network Monitor macht die gezielte Netzwerk-Überwachung und Analyse zum Kinderspiel

    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:

    1. Mobile Games – Spieleprogrammierung für Handys mit Java ME von Thomas Lucka
    2. Oracle verklagt Google wegen Java in Android
    3. Mobile Games – Spieleprogrammierung für Handys mit Java ME von Thomas Lucka
    ]]>
    http://m-software.de/java-network-monitor-jsp/feed 0
    Trennen von Domains und Subdomains http://m-software.de/domainstrennen-html http://m-software.de/domainstrennen-html#comments Thu, 07 Oct 2010 08:07:37 +0000 Michael Jentsch http://m-software.de/?p=285
  • TLD Liste
  • ]]>
    Trennen von Domains und Subdomains mit einem Shell Skript

    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:

    1. TLD Liste
    ]]>
    http://m-software.de/domainstrennen-html/feed 0
    Two Level Domain Liste http://m-software.de/twoleveldomains-html http://m-software.de/twoleveldomains-html#comments Thu, 07 Oct 2010 08:04:31 +0000 Michael Jentsch http://m-software.de/?p=283
  • TLD Liste
  • ]]>
    Alle mir bekannten Two Level Domains Stand 01.01.2006

    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:

    1. TLD Liste
    ]]>
    http://m-software.de/twoleveldomains-html/feed 0
    TLD Liste http://m-software.de/tld-html http://m-software.de/tld-html#comments Thu, 07 Oct 2010 08:02:34 +0000 Michael Jentsch http://m-software.de/?p=280 Alle Top Level Domains Stand 01.01.2006

    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.

    ]]>
    http://m-software.de/tld-html/feed 0