Биллинговая система Nodeny
22 Ноября 2024, 21:13:54 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Прекращена поддержка версии Nodeny 49
 
   Начало   Помощь Поиск Войти Регистрация  
Страниц: [1]
  Печать  
Автор Тема: файл со списком сетей  (Прочитано 8818 раз)
elite
Начальник планеты
NoDeny
Спец
*

Карма: 52
Offline Offline

Сообщений: 1226

In LAN we trust!

358714596
Просмотр профиля
« : 31 Июля 2009, 09:36:19 »

Нельзя ли сделать так, чтобы nodeny в файле со списком сетей просто игнорировал текстовые комментарии?
Например, есть файл http://noc.ix.net.ua/ua-list.txt
В нем первые 3 строчки - текст, а дальше пошел список сетей. Так биллинг не хочет его "кушать" Грустный
Суть вот в чем: файл со списком сетей можно периодически обновлять кроном, и нужно, чтобы биллинг его нормально читал
« Последнее редактирование: 31 Июля 2009, 10:45:36 от elite » Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4790



Просмотр профиля
« Ответ #1 : 31 Июля 2009, 12:39:10 »

так можно в том же кроне (или скрипте загрузки) удалить комментарии с помощью grep:

grep -v '^#' file1 > file2
Записан
elite
Начальник планеты
NoDeny
Спец
*

Карма: 52
Offline Offline

Сообщений: 1226

In LAN we trust!

358714596
Просмотр профиля
« Ответ #2 : 31 Июля 2009, 12:42:44 »

так можно в том же кроне (или скрипте загрузки) удалить комментарии с помощью grep:

grep -v '^#' file1 > file2
там комментарии просто текст, без #
Записан
versus
Администратор
Спец
*****

Карма: 21
Offline Offline

Сообщений: 845


44306843
Просмотр профиля WWW Email
« Ответ #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 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 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
Записан
Андрій
NoDeny
Старожил
*

Карма: 3
Offline Offline

Сообщений: 294


Просмотр профиля
« Ответ #6 : 09 Мая 2011, 13:34:57 »

а скачую ір юа-ікс з http://www.colocall.net/ua/prefixes.txt, там крім ір нічого більше нема
Записан
Rico-X
NoDeny
Старожил
*

Карма: 7
Offline 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 Offline

Сообщений: 349


Просмотр профиля
« Ответ #8 : 09 Мая 2011, 18:37:37 »

а скачую ір юа-ікс з http://www.colocall.net/ua/prefixes.txt, там крім ір нічого більше нема
О спасибо, отличный источник - пригодится.
Записан
0xbad0c0d3
гуру nodeny )
NoDeny
Спец
*

Карма: 116
Offline 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 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 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
Все же лучше чем писать скрипт на примитивную операцию
Записан
Страниц: [1]
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.20 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!