Биллинговая система Nodeny

Главная категория => Nodeny 50 => Тема начата: elite от 31 Июля 2009, 09:36:19



Название: файл со списком сетей
Отправлено: elite от 31 Июля 2009, 09:36:19
Нельзя ли сделать так, чтобы nodeny в файле со списком сетей просто игнорировал текстовые комментарии?
Например, есть файл http://noc.ix.net.ua/ua-list.txt
В нем первые 3 строчки - текст, а дальше пошел список сетей. Так биллинг не хочет его "кушать" :(
Суть вот в чем: файл со списком сетей можно периодически обновлять кроном, и нужно, чтобы биллинг его нормально читал


Название: Re: файл со списком сетей
Отправлено: Efendy от 31 Июля 2009, 12:39:10
так можно в том же кроне (или скрипте загрузки) удалить комментарии с помощью grep:

grep -v '^#' file1 > file2


Название: Re: файл со списком сетей
Отправлено: elite от 31 Июля 2009, 12:42:44
так можно в том же кроне (или скрипте загрузки) удалить комментарии с помощью grep:

grep -v '^#' file1 > file2
там комментарии просто текст, без #


Название: Re: файл со списком сетей
Отправлено: versus от 31 Июля 2009, 18:20:25
Ну вот на вскидку за 15 минут набросал скрипт для крона

Код:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import urllib,os,sys,re
url = 'http://noc.ix.net.ua/ua-list.txt'
uafile='/usr/local/nodeny/UAIX.txt'

def main():
fd=open(uafile,'w')
page = urllib.urlopen(url)
uaix = page.readlines()
for ip in uaix:
if len(re.findall(r'(?:\d{1,3}\.){3}\d{1,3}', ip)):
fd.write(ip)
fd.close()

if __name__ == "__main__":
    sys.exit(main())



Название: Re: файл со списком сетей
Отправлено: Rico-X от 09 Мая 2011, 10:21:51
Так как часть адресов в списке попадают без маски подсети, написал свой скрипт.
Код:
#!/bin/sh

TMP_DIR="./"
PREFIX_FILE="uaix.txt"
URL="http://noc.ix.net.ua/ua-list.txt"

fetch -q -o ${TMP_DIR}/${PREFIX_FILE} ${URL}

if [ $? -eq '0' ]
 then
        cat ${TMP_DIR}/${PREFIX_FILE} | grep \^\[0-9\] | awk -F "\." '{if ($4==0) print $1"."$2"."$3"."$4"/24"; else print $1"."$2"."$3"."$4;}' >${TMP_DIR}/ua-list.tmp.$$
        mv ${TMP_DIR}/ua-list.tmp.$$ ${TMP_DIR}/${PREFIX_FILE}
 else
  echo "UA-IX list file was not fetched"
fi


Название: Re: файл со списком сетей
Отправлено: 0xbad0c0d3 от 09 Мая 2011, 10:54:24
!unix way )
Код:
wget -q -O - "http://noc.ix.net.ua/ua-list.txt"|grep -E '^([0-9]{1,3}\.){3}[0-9]{1,3}(/[0-9]{1,2})?' >ua-list.txt
^^TRUE


Название: Re: файл со списком сетей
Отправлено: Андрій от 09 Мая 2011, 13:34:57
а скачую ір юа-ікс з http://www.colocall.net/ua/prefixes.txt, там крім ір нічого більше нема


Название: Re: файл со списком сетей
Отправлено: Rico-X от 09 Мая 2011, 18:35:18
!unix way )
Код:
wget -q -O - "http://noc.ix.net.ua/ua-list.txt"|grep -E '^([0-9]{1,3}\.){3}[0-9]{1,3}(/[0-9]{1,2})?' >ua-list.txt
^^TRUE
Не совсем, смотрим в выхлопной файл, часть подсетей без масок, и соответственно из всей подсети обрабатывается только один адрес :(


Название: Re: файл со списком сетей
Отправлено: Rico-X от 09 Мая 2011, 18:37:37
а скачую ір юа-ікс з http://www.colocall.net/ua/prefixes.txt, там крім ір нічого більше нема
О спасибо, отличный источник - пригодится.


Название: Re: файл со списком сетей
Отправлено: 0xbad0c0d3 от 09 Мая 2011, 20:36:55
Код:
wget -q -O - "http://noc.ix.net.ua/ua-list.txt"|grep -E '^([0-9]{1,3}\.){3}[0-9]{1,3}(/[0-9]{1,2})?' >>ua-list.txt
А так сделать не?


Название: Re: файл со списком сетей
Отправлено: Rico-X от 10 Мая 2011, 06:46:08
Код:
wget -q -O - "http://noc.ix.net.ua/ua-list.txt"|grep -E '^([0-9]{1,3}\.){3}[0-9]{1,3}(/[0-9]{1,2})?' >>ua-list.txt
А так сделать не?
А глянуть в то что получается, например 194.х.х.х полистать и посмотреть не? В том то и была проблема, что пришлось городить конструкцию
Код:
{if ($4==0) print $1"."$2"."$3"."$4"/24"; else print $1"."$2"."$3"."$4;}


Название: Re: файл со списком сетей
Отправлено: 0xbad0c0d3 от 10 Мая 2011, 19:29:20
Уболтали!
Код:
wget -q -O - "http://noc.ix.net.ua/ua-list.txt"|grep -E '^([0-9]{1,3}\.){3}[0-9]{1,3}(/[0-9]{1,2})?'|sed -e 's/\.0$/.0\/24/' >>ua-list.txt
Все же лучше чем писать скрипт на примитивную операцию