mirror of git://git.acid.vegas/anope.git
82 lines
3.1 KiB
Bash
Executable File
82 lines
3.1 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# This script is a helper script for the irc2sql module.
|
|
# It downloads the configured geoip databases and inserts
|
|
# them into existing mysql tables. The tables are created
|
|
# by the irc2sql module on the first load.
|
|
|
|
# Don't forget to rename this file or your changes
|
|
# will be overwritten on the next 'make install'
|
|
|
|
############################
|
|
# Config
|
|
############################
|
|
|
|
|
|
geoip_database="country" # available options: "country" and "city"
|
|
mysql_host="localhost"
|
|
mysql_user="anope"
|
|
mysql_password="anope"
|
|
mysql_database="anope"
|
|
prefix="anope_"
|
|
die="yes"
|
|
|
|
###########################
|
|
|
|
# The GeoIP data is created by MaxMind, available from www.maxmind.com.
|
|
geoip_country_source="https://geolite.maxmind.com/download/geoip/database/GeoIPCountryCSV.zip"
|
|
geoip_city_source="https://geolite.maxmind.com/download/geoip/database/GeoLiteCity_CSV/GeoLiteCity-latest.zip"
|
|
geoip_region_source="https://www.maxmind.com/download/geoip/misc/region_codes.csv"
|
|
|
|
###########################
|
|
LOGIN="--host=$mysql_host --user=$mysql_user --password=$mysql_password $mysql_database"
|
|
PARAMS="--delete --local --fields-terminated-by=, --fields-enclosed-by=\" --lines-terminated-by=\n $LOGIN"
|
|
|
|
download() {
|
|
local url=$1
|
|
local desc=$2
|
|
echo -n " $desc "
|
|
wget --progress=dot $url 2>&1 | grep --line-buffered "%" | sed -u -e "s,\.,,g" | awk '{printf("\b\b\b\b%4s", $2)}'
|
|
echo -ne " Done\n"
|
|
}
|
|
|
|
|
|
if test $die = "yes"; then
|
|
echo "You have to edit and configure this script first."
|
|
exit
|
|
fi
|
|
|
|
|
|
if test $geoip_database = "country"; then
|
|
echo "Downloading..."
|
|
download "$geoip_country_source" "Country Database:"
|
|
echo "Unpacking..."
|
|
unzip -jo GeoIPCountryCSV.zip
|
|
rm GeoIPCountryCSV.zip
|
|
echo "Converting to UTF-8..."
|
|
iconv -f ISO-8859-1 -t UTF-8 GeoIPCountryWhois.csv -o $prefix"geoip_country.csv"
|
|
rm GeoIPCountryWhois.csv
|
|
echo "Importing..."
|
|
mysqlimport --columns=@x,@x,start,end,countrycode,countryname $PARAMS $prefix"geoip_country.csv"
|
|
rm $prefix"geoip_country.csv" $prefix"geoip_country6.csv"
|
|
echo "Done..."
|
|
elif test $geoip_database = "city"; then
|
|
echo "Downloading..."
|
|
download "$geoip_city_source" "City Database:"
|
|
download "$geoip_region_source" "Region Database:"
|
|
echo "Unpacking..."
|
|
unzip -jo GeoLiteCity-latest.zip
|
|
rm GeoLiteCity-latest.zip
|
|
echo "Converting to utf-8..."
|
|
iconv -f ISO-8859-1 -t UTF-8 GeoLiteCity-Blocks.csv -o $prefix"geoip_city_blocks.csv"
|
|
iconv -f ISO-8859-1 -t UTF-8 GeoLiteCity-Location.csv -o $prefix"geoip_city_location.csv"
|
|
iconv -f ISO-8859-1 -t UTF-8 region.csv -o $prefix"geoip_city_region.csv"
|
|
rm GeoLiteCity-Blocks.csv GeoLiteCity-Location.csv region.csv
|
|
echo "Importing..."
|
|
mysqlimport --columns=start,end,locID --ignore-lines=2 $PARAMS $prefix"geoip_city_blocks.csv"
|
|
mysqlimport --columns=locID,country,region,city,@x,latitude,longitude,@x,areaCode --ignore-lines=2 $PARAMS $prefix"geoip_city_location.csv"
|
|
mysqlimport --columns=country,region,regionname $PARAMS $prefix"geoip_city_region.csv"
|
|
rm $prefix"geoip_city_blocks.csv" $prefix"geoip_city_location.csv" $prefix"geoip_city_region.csv" $prefix"geoip_country6.csv"
|
|
echo "Done..."
|
|
fi
|