Archivo

Entradas Etiquetadas ‘geoip’

LAMP on Ubuntu 8.10 Desktop Edition

lunes, 10 de noviembre de 2008 Albertux 5 comentarios

LAMP on Ubuntu 8.10 Desktop Edition

# LAMP on Ubuntu 8.10 desktop edition
sudo apt-get install mysql-server
# Set root password (MySQL)
sudo apt-get install apache2
# Install PHP as module
sudo apt-get install libapache2-mod-php5
# Support MySQL on PHP
sudo apt-get install php5-mysql
# Restart Apache server
sudo /etc/init.d/apache2 restart
# Test php5 on Apache2
sudo echo "<? phpinfo ?>" > ._info.php
sudo mv ._info.php /var/www/info.php
firefox http://localhost/info.php

GEOIP

Algo interesante que encontre, es que ya existe un modulo php5-geoip que utiliza una base de datos de MaxMInd, ver GeoIP Database on MySQL.

Categories: unix/linux, web Tags: ,

GeoIP PHP Script

miércoles, 1 de octubre de 2008 Albertux Sin comentarios

GeoIP PHP Script

I made this script utility to check what country is some ip, you need GeoIP Database

I hope you have PHP in your path:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#!/usr/bin/php -q
<?
 
if (count($_SERVER['argv']) <= 1) {
	echo "use: geoip xxx.xxx.xxx.xxx\n";
}
else {
	$ip=$_SERVER['argv'][1];
	$out=sprintf("%u", ip2long($ip)); // don't ask why, you need this line
 
	$sql="SELECT country_name FROM geoip WHERE ($out BETWEEN ip_begin AND ip_end)";
 
	$link = mysql_connect('localhost','root',''); // HOST, USER, PASS
	mysql_select_db('GEOIP'); // DATABASE
 
	$query = mysql_query($sql,$link);
 
	while ($row = @mysql_fetch_array($query,MYSQL_ASSOC)) {
		$data[] = $row;
	}
 
	if (count($data) == 1) {
		echo $data[0]['country_name']."\n";
	}
	else {
		echo "Unknown\n";
	}
}
?>

Examples:

~$ geoip 79.130.90.12
Greece
~$ geoip 207.33.11.33
United States
~$ geoip 148.234.13.23
Mexico

I think i made a good tool.

Categories: database, network Tags: , ,

GeoIP Database MySQL

viernes, 8 de agosto de 2008 Albertux Sin comentarios

GeoIP Database MySQL

Aveces necesitamos saber de que pais proceden nuestros visitantes una manera de saberlo es por medio de su IP.
Escribi este script en Bash para instalar en una base de datos nueva o existe la tabla “geoip” ahora ya puedes usar PHP, Python, Perl, Ruby o lo que quieras.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#!/bin/bash
# Script: geoip.sh
# Author: Alberto Isaac Ayala Esquivias
# E-mail: <albertoi7@gmail.com>
# Web: http://albertux.ayalasoft.net
clear
echo "=====================================-"
echo " GeoIp MySQL Database Easy Installer. "
echo "======================================"
echo ""
echo "Script Created By http://AyalaSoft.com";
echo ""
stty -echo
read -p "MySQL root password: " mysql_pass; echo
stty echo
echo -n "Do you want to create database of MySQL (y/n): "
read op
if [ "$op" = "y" ]; then
echo -n "Create new database, name: "
	read database
	mysqladmin -u root --password=$mysql_pass create $database
else
echo -n "Which database do you want to use to insert 'geoip' table: "
read database
fi
echo -e "\nDownload  [ GeoIPCountryCSV.zip ]"
wget -c "http://www.maxmind.com/download/geoip/database/GeoIPCountryCSV.zip"
echo -e "\nUnZip [ GeoIPCountryCSV.zip ]"
unzip GeoIPCountryCSV.zip
echo -e "\nInsert geoip table to database $database"
awk -F, ' { print $3","$4","$5","$6 }' GeoIPCountryWhois.csv | sed s/\"//g > /tmp/geoip.txt
chmod 777 /tmp/geoip.txt
echo "
USE $database;
 
DROP TABLE IF EXISTS geoip;
 
CREATE TABLE geoip (
	ip_begin int unsigned,
	ip_end int unsigned,
	country varchar(2),
	country_name varchar(30)
);
 
LOAD DATA LOCAL INFILE '/tmp/geoip.txt'
INTO TABLE $database.geoip
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
(ip_begin, ip_end, country, country_name);
" > geoip.sql
mysql -u root --password=$mysql_pass $database < geoip.sql
rm /tmp/geoip.txt
echo -e "\nFinish."
Categories: database, network, unix/linux Tags: , ,