FSO Framework – Meilenstein Nummero 5

Unter dem Namen Calling all Stations ist vor ein paar Tagen der fünfte Meilenstein des FSO Framework’s herausgekommen. Es wurden wieder viele Verbesserungen und Erweiterungen vorgenommen. So unterstüzt ogsmd nun auch die Geräte Freescale Neptune, Cinterion mc75[i], Qualcomm MSM, Ericsson F3507g modem und Option UMTS Karten. Dem GPS Deamon ogpsd wurde um Debuging über UDP erweitert.

Auch an anderen Stellen wurde wieder gewerkelt so das sich die Changelog bedrohliche Maße annimmt :) Zu finden ist das FSO Image unter http://downloads.freesmartphone.org/fso-stable/milestone5/.

Weitere Informationen gibt es unter:
http://wiki.openmoko.org/wiki/OpenmokoFramework/Status_Update_6

Pastebin zum Selbermachen

Im Netz gibt es ja eine Menge pastebin Dienste, angefangen bei http://nopaste.ch/ über http://pastebin.com/ bis hin zu http://de.pastebin.ca/.

Natürlich kann man einen dieser Pastebin Systeme benutzen, aber man kann auch seinen eigenen Pastebin aufsetzen. Der Pastebin Dienst http://pastebin.com/ bietet dazu unter http://pastebin.com/pastebin.tar.gz das passende PHP Skript. Es kann seine Daten im Filesystem oder in einer MySQL Datenbank speichern.

Ich musste bei dem Skript noch etwas nacharbeiten damit es dann auch bei mir läuft, aber das hängt von der jeweiligen Serverkonfiguration ab. Für alle die das Bedürfnis nach einen eigenen Pastebin System haben, sei dieses Skript empfohlen.

Mediawiki – Sidebar bearbeiten

In einer MediaWiki gibt es auf der linken Seite einen Bereich in dem sich die Navigation befindet. Dieser Bereich wird Sidebar genannt. Möchte man dieses Bereich nun bearbeiten so gibt man als URL

http://example.org/MediaWiki:Sidebar

ein. Sollte man mod_rewrite nicht aktiviert haben so ist die URL

http://example.org/index.php?title=MediaWiki:Sidebar

die richtige Wahl. Und schon kann man die Sidebar nach Herzenslust bearbeiten.

Weitere Informationen gibt es unter:
http://de.wikipedia.org/wiki/Mediawiki
http://meta.wikimedia.org/wiki/Hilfe:Handbuch

Freenode IRC – Channel löschen

Möchte man einen registrierten Channel löschen so muss man folgendes eingeben:

/msg ChanServ DROP #invertika 

Danach kommt folgende Meldung:

To avoid accidental use of this command, this operation has to be confirmed. Please confirm by replying with /msg ChanServ DROP #invertika 6cc998e4:35a03bd0 

Um den Channel nun endgültig zu löschen (genauer die Registrierung) kopiert man die Befehlszeile und übermittelt sie. Schon ist der Channel nicht mehr registriert.

Land einer IP Adresse in PHP ermitteln

Um die IP Adresse des aufrufenden Hosts in PHP zu ermitteln reicht folgendes Skript:

$ip=getenv("REMOTE_ADDR");
echo "Ihre IP ist: " . $ip;

Möchte man nun auch das Land ermitteln wird die ganze Sache schwieriger. Die IP Adresse an sich sagt nämlich nichts über den Standort aus. Also brauchen wir Informationen welche die IP Adresse mit Standortinformationen verknüpft. Eine solche Tabelle können wir unter http://ip-to-country.webhosting.info/downloads/ip-to-country.csv.zip .

Nachdem wir diese Datei heruntergeladen haben müssen wir sie in eine Datenbank importieren. Dazu müssen wir in der Datenbank erst eine neue Tabelle erstellen. Dies geschieht in phpMyAdmin mittels folgender SQL Anweisung:

CREATE TABLE `IPtoCountry` (
`IP_FROM` DOUBLE NOT NULL ,
`IP_TO` DOUBLE NOT NULL ,
`ISO3166-2` CHAR( 2 ) NOT NULL ,
`ISO3166-1` CHAR( 3 ) NOT NULL ,
`Name` VARCHAR( 255) NOT NULL
)

Danach kann die CSV Datei auch mittels phpMyAdmin in die Tabelle importiert werden. Dabei sollte darauf geachtet werden das das , (Komma) als Trenner eingestellt wird. Um das ganze dann zu nutzen benötigen wir noch eine Funktion welche die Datenbank abfragt und das ganze zurück gibt. Am Ende könnte das so aussehen:

 function IPtoCountry($IP)
{
$db_host="seeseekey.net";
$db_username="geheim";
$db_password="geheim";
$db_name="IpSelectDb";

$IP = sprintf("%u", ip2long($IP));

mysql_connect($db_host, $db_username, $db_password);
mysql_select_db($db_name);

$sql = "SELECT * FROM IPtoCountry WHERE IP_FROM <= $IP AND IP_TO >= $IP LIMIT 1";
$result = mysql_query($sql);

if (mysql_num_rows($result) == 0)
{
return "nicht bekannt";
}
else
{
$row = mysql_fetch_array($result);
return $row['Name'];
}
}

$ip = getenv("REMOTE_ADDR");
echo "Ihre IP ist: " . $ip . "
";
echo "Ihr Standort: " . IPtoCountry($ip);
?>

Die Variablen $db_host, $db_username, $db_password und $db_name müssen natürlich auf die richtigen Werte gesetzt werden. Wer das ganze in echt sehen möchte kann dies unter http://myip.jerilynn.net/ tun.