elite
Начальник планеты
NoDeny
Спец
Карма: 52
Offline
Сообщений: 1226
In LAN we trust!
|
|
« : 31 Июля 2009, 09:36:19 » |
|
Нельзя ли сделать так, чтобы nodeny в файле со списком сетей просто игнорировал текстовые комментарии? Например, есть файл http://noc.ix.net.ua/ua-list.txtВ нем первые 3 строчки - текст, а дальше пошел список сетей. Так биллинг не хочет его "кушать" Суть вот в чем: файл со списком сетей можно периодически обновлять кроном, и нужно, чтобы биллинг его нормально читал
|
|
« Последнее редактирование: 31 Июля 2009, 10:45:36 от elite »
|
Записан
|
|
|
|
Efendy
|
|
« Ответ #1 : 31 Июля 2009, 12:39:10 » |
|
так можно в том же кроне (или скрипте загрузки) удалить комментарии с помощью grep:
grep -v '^#' file1 > file2
|
|
|
Записан
|
|
|
|
elite
Начальник планеты
NoDeny
Спец
Карма: 52
Offline
Сообщений: 1226
In LAN we trust!
|
|
« Ответ #2 : 31 Июля 2009, 12:42:44 » |
|
так можно в том же кроне (или скрипте загрузки) удалить комментарии с помощью grep:
grep -v '^#' file1 > file2
там комментарии просто текст, без #
|
|
|
Записан
|
|
|
|
versus
|
|
« Ответ #3 : 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())
|
|
|
Записан
|
|
|
|
Rico-X
NoDeny
Старожил
Карма: 7
Offline
Сообщений: 349
|
|
« Ответ #4 : 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
|
|
|
Записан
|
|
|
|
0xbad0c0d3
гуру nodeny )
NoDeny
Спец
Карма: 116
Offline
Сообщений: 1059
|
|
« Ответ #5 : 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
|
|
|
Записан
|
|
|
|
|
Rico-X
NoDeny
Старожил
Карма: 7
Offline
Сообщений: 349
|
|
« Ответ #7 : 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 Не совсем, смотрим в выхлопной файл, часть подсетей без масок, и соответственно из всей подсети обрабатывается только один адрес
|
|
|
Записан
|
|
|
|
Rico-X
NoDeny
Старожил
Карма: 7
Offline
Сообщений: 349
|
|
« Ответ #8 : 09 Мая 2011, 18:37:37 » |
|
О спасибо, отличный источник - пригодится.
|
|
|
Записан
|
|
|
|
0xbad0c0d3
гуру nodeny )
NoDeny
Спец
Карма: 116
Offline
Сообщений: 1059
|
|
« Ответ #9 : 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 А так сделать не?
|
|
|
Записан
|
|
|
|
Rico-X
NoDeny
Старожил
Карма: 7
Offline
Сообщений: 349
|
|
« Ответ #10 : 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;}
|
|
|
Записан
|
|
|
|
0xbad0c0d3
гуру nodeny )
NoDeny
Спец
Карма: 116
Offline
Сообщений: 1059
|
|
« Ответ #11 : 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 Все же лучше чем писать скрипт на примитивную операцию
|
|
|
Записан
|
|
|
|
|