Автор Тема: Списък с български IP адреси, записани в CIDR формат  (Прочетена 7988 пъти)

vstoykov

  • Напреднали
  • *****
  • Публикации: 1286
  • Distribution: Ubuntu
  • Window Manager: Fluxbox
    • Профил
    • WWW
ip.ludost.net и countryipblocks.net са най-точните/актуални инструменти, за генериране на списък с български IP адреси в CIDR формат, които съм намерил. Обаче като сравня двата файла излизат разлики - някои адреси ги няма в първия, а други - във втория. Има и различаващи се редове.
 
Само няколко примера:
 
countryipblocks.net  |  ip.ludost
193.200.1.0/23  |  193.200.1.0/24
193.41.206.0/24 | няма такъв ред
91.198.228.0/24 | няма такъв ред
91.199.247.0/24 | няма такъв ред


Написах един скрипт, който "почиства" файла, който се получава след обединяване на двата файла.

Код:
cat файл1 файл2 | sort -u > mix
CIDR_clean-up.bash mix > mix_clean

CIDR_clean-up.bash
Код
GeSHi (Bash):
  1. #!/bin/bash
  2.  
  3.  
  4. cat "$1" | cut -d "/" -f 1 | sort -u | while read ThisIP; do
  5.  
  6. ThisN=$(grep "^$ThisIP/" "$1" | cut -d / -f 2 | sort -g -u | head -n 1)
  7. echo $ThisIP/$ThisN
  8.  
  9. done
  10.  

Този скрипт прави ли това, което си мисля? Затруднявам се да го докажа математически, обаче интуицията ми подсказва, че би трябвало да работи.

Получения списък смятам да го пъхам в .htaccess файл и затова толкова се старая да е "чист".
Активен

foxb

  • Напреднали
  • *****
  • Публикации: 175
    • Профил
    • WWW
На знам точно за какво искаш да го ползваш, но има и алтернативи от рода на

http://www.maxmind.com/app/mod_geoip

Тяхната база данни се използва от доста хора, така че може би също е коректна.

10101

  • Напреднали
  • *****
  • Публикации: 384
  • Distribution: GNU LINUX
    • Профил
193.41.206.0/24 Не е особено "българска" според ripe.net


Поздрави.
Активен

А печат ?

vstoykov

  • Напреднали
  • *****
  • Публикации: 1286
  • Distribution: Ubuntu
  • Window Manager: Fluxbox
    • Профил
    • WWW
На http://cqcounter.com/whois/ излиза "BG, Bulgaria" като разположение и някакви други данни по-надолу (EU).

Обаче тези три адреса наистина не трябва да ги има в списъка (излизат в зелено в програмата kompare "kompare countryipblocks.net.txt ip.ludost.net").

Интерес представляват редовете излизащи в червено:

(В ляво са данните от countryipblocks.net.txt, а в дясно - от ip.ludost.net.)




Написах и един скрипт, който уж проверява дали адресите са български:

Код:
cat list.txt | cut -d "/" -f 1 | whois-test-list-from-stdin.bash

whois-test-list-from-stdin.bash
Код
GeSHi (Bash):
  1. #!/bin/bash
  2.  
  3. while read IP; do
  4.  
  5. if whois -H $IP | crunch2 | grep "country: BG"; then
  6.  
  7. echo $IP: OK
  8.  
  9. else
  10.  
  11.        if whois -H $IP | grep "Please upgrade this program"; then
  12.         echo "$IP: Иска ъпгрейд!!!"
  13.        else
  14.         echo $IP: Грешка!!!
  15.        fi
  16.  
  17. fi
  18.  
  19. done
  20.  

Обаче за някои адреси, които са на фирми от други държави вади "Грешка!!!", въпреки че IP адресите са в България. Има и такива случаи - напр. 207.241.164.192:



Друг пример: 85.118.192.0 (Глобул) - там излиза "bg" вместо "BG".

Има и странни адреси - намират се в Германия, фирмата се намира там, но имат и адрес за контакт в България (91.198.228.0).


В списъка от ip.ludost.net има и малко адреси, които не са в България:

Цитат
Здравей,

ip.ludost.net е автоматичен. Никой не седи да следи адресите, да ги
добавя или маха от някакви списъци.
Абсолютно всички адреси които споменаваш като странни в базата на ip
са маркирани като намиращи се в България в базите на RIR-овете. Тъй
като нашите скриптове агрегират до /24 ако в една /24-ка има повече от
128 адреса които са отбелязани като България, то цялата /24-ка ще я
броим за България. Например

от RIPE DB:
inetnum: * * * * 217.17.48.0 - 217.17.63.255
country: * * * * BG

inetnum: * * * * 217.17.55.0 - 217.17.55.15
country: * * * * GB

т.е. само 16 от 256 адреса в 217.17.55.0/24 се намират в GB. Останалите са в BG.

Поздрави,
Boyan Krosnov
« Последна редакция: Jan 20, 2010, 19:55 от vstoykov »
Активен

nigl

  • Напреднали
  • *****
  • Публикации: 49
  • Distribution: Debian
  • Window Manager: Gnome
    • Профил
Хм.. моето ип се рутира през  редове 204 и 220 на двата списъка. Доколко лошо е това?
Имам инсталиран веб и мел сървари-за чисто образователни цели засега.
« Последна редакция: Jan 20, 2010, 21:13 от k1d2c3 »
Активен

vstoykov

  • Напреднали
  • *****
  • Публикации: 1286
  • Distribution: Ubuntu
  • Window Manager: Fluxbox
    • Профил
    • WWW
Това значи, че си клиент на БТК, в което няма нищо лошо.

Това не е "черен списък". Това е просто списък с IP адресите от България. Такива списъци се ползват когато искаме да ограничим достъпа на потребители от определени държави до даден сайт или друга услуга.
Активен

lod

  • Напреднали
  • *****
  • Публикации: 76
  • Distribution: (K)Ubuntu/FreeBSD
  • Window Manager: Gnome/KDE
  • LPIC-3, CCNP, MCT, MCSE, VW Golf Driver
    • Профил
#!/bin/bash
#
#Purpose to download bg isp zone with prefix,
# from ip.ludost.net for further iptables use
#
# lod@lordofdeath.net [License for the script only:GPLv3]
wg=`which wget`
out=/etc/FIREWALL/bgzone.lst
tmp=/tmp/`date +%s`
$wg -O $tmp "http://ip.ludost.net/cgi/process?country=1&country_list=bg&format_template=prefix&format_name=&format_target=&format_default="

if [ "$?" = "0" ];then
        rm $out
        cat $tmp | sed -e "/^#.*/d" > $out
        rm $tmp
        exit 0
else
        exit 1
fi


скрипта съм го добавил в cron и се рефрешва веднъж месечно.
« Последна редакция: Jan 28, 2010, 12:50 от lod »
Активен

lod

  • Напреднали
  • *****
  • Публикации: 76
  • Distribution: (K)Ubuntu/FreeBSD
  • Window Manager: Gnome/KDE
  • LPIC-3, CCNP, MCT, MCSE, VW Golf Driver
    • Профил
 инжектирам го директно в iptables
Активен

VladSun

  • Напреднали
  • *****
  • Публикации: 2166
    • Профил
инжектирам го директно в iptables

По-добре става с ipset nethash
Активен

KISS Principle ( Keep-It-Short-and-Simple )
http://openfmi.net/projects/flattc/
Има 10 вида хора на този свят - разбиращи двоичния код и тези, които не го разбират :P

lod

  • Напреднали
  • *****
  • Публикации: 76
  • Distribution: (K)Ubuntu/FreeBSD
  • Window Manager: Gnome/KDE
  • LPIC-3, CCNP, MCT, MCSE, VW Golf Driver
    • Профил
Активен