forum.bitel.ru http://forum.bitel.ru/ |
|
Ip адрес http://forum.bitel.ru/viewtopic.php?f=5&t=10768 |
Страница 1 из 1 |
Автор: | Inspire [ 07 авг 2015, 12:00 ] |
Заголовок сообщения: | Ip адрес |
Пришло письмо из гу мвд с просьбой вычислить по ip-адресу Как это можно лучше всего сделать? Я хочу сделать запрос в бд, но в таблице log_session ip адрес хранится в непонятном для меня формате, такого типа 531350000. |
Автор: | stark [ 07 авг 2015, 14:07 ] |
Заголовок сообщения: | Re: Ip адрес |
SELECT ipaddr, INET_NTOA(ipaddr) FROM bgbilling_test.log_session_21_201207; |
Автор: | dimOn [ 07 авг 2015, 14:37 ] |
Заголовок сообщения: | Re: Ip адрес |
Цитата: такого типа 531350000 ip-адрес — это 32-битовое число по определению так вот это оно и есть |
Автор: | Inspire [ 07 авг 2015, 17:12 ] |
Заголовок сообщения: | Re: Ip адрес |
Спасибо |
Автор: | snark [ 26 дек 2015, 00:58 ] |
Заголовок сообщения: | Re: Ip адрес |
bgb_IP_search.sh Код: #!/bin/sh # IP адрес абонента, который нужно найти ip_adress='1.2.3.4' # имя файла, куда запишутся результаты поиска log_file="/path/to/IP_search_$ip_adress.txt" # SQL Server configuration db_host='localhost' db_port='3306' db_user='bill' db_pass='bgbilling' db_name='bgbilling' mysql="/usr/bin/mysql -h $db_host -P $db_port -u $db_user -p$db_pass -D $db_name -B --default-character-set=utf8 -e" session_table_list=`$mysql "SHOW TABLES FROM bgbilling WHERE Tables_in_bgbilling LIKE 'log_session_1_%';" | grep -v 'Tables_in_bgbilling'` echo 'dogovor;start;stop;time;mac;ip' > $log_file if [ -n "$session_table_list" ]; then for table_name in $session_table_list; do $mysql "SELECT (SELECT c.title FROM contract c LEFT JOIN user_login_1 ul ON (ul.cid = c.id) WHERE ul.id = lid) AS dogovor, DATE_FORMAT(session_start, '%d.%m.%Y %T') AS start, DATE_FORMAT(session_stop, '%d.%m.%Y %T') AS stop, SEC_TO_TIME(session_time) AS time, from_number AS mac, INET_NTOA(ipaddr) AS ip FROM $table_name WHERE ipaddr = INET_ATON('$ip_adress');" | \ awk '/'$ip_adress'/ {printf("%s;%s %s;%s %s;%s;%s;%s\n",$1,$2,$3,$4,$5,$6,$7,$8)}' >> $log_file done fi bgb_MAC_search.sh Код: #!/bin/sh # MAC адрес абонента, который нужно найти # адрес записывать только так, как он отобраджается в биллинге, # т.е. в нижнем регистре без каких либо символов разделителей mac_adress='010203040506' # имя файла, куда запишутся результаты поиска log_file="/path/to/MAC_search_$mac_adress.txt" # SQL Server configuration db_host='localhost' db_port='3306' db_user='bill' db_pass='bgbilling' db_name='bgbilling' mysql="/usr/bin/mysql -h $db_host -P $db_port -u $db_user -p$db_pass -D $db_name -B --default-character-set=utf8 -e" session_table_list=`$mysql "SHOW TABLES FROM bgbilling WHERE Tables_in_bgbilling LIKE 'log_session_1_%';" | grep -v 'Tables_in_bgbilling'` echo 'dogovor;start;stop;time;mac;ip' > $log_file if [ -n "$session_table_list" ]; then for table_name in $session_table_list; do $mysql "SELECT (SELECT c.title FROM contract c LEFT JOIN user_login_1 ul ON (ul.cid = c.id) WHERE ul.id = lid) AS dogovor, DATE_FORMAT(session_start, '%d.%m.%Y %T') AS start, DATE_FORMAT(session_stop, '%d.%m.%Y %T') AS stop, SEC_TO_TIME(session_time) AS time, from_number AS mac, INET_NTOA(ipaddr) AS ip FROM $table_name WHERE from_number = '$mac_adress';" | \ awk '/'$mac_adress'/ {printf("%s;%s %s;%s %s;%s;%s;%s\n",$1,$2,$3,$4,$5,$6,$7,$8)}' >> $log_file done fi Вдруг кому пригодится. |
Автор: | skyb [ 08 янв 2016, 06:43 ] |
Заголовок сообщения: | Re: Ip адрес |
И этот человек ещё на меня фейспалмил...)))) |
Автор: | snark [ 08 янв 2016, 09:15 ] |
Заголовок сообщения: | Re: Ip адрес |
skyb писал(а): И этот человек ещё на меня фейспалмил...)))) |
Автор: | stark [ 20 янв 2016, 16:28 ] |
Заголовок сообщения: | Re: Ip адрес |
skyb писал(а): И этот человек ещё на меня фейспалмил...)))) Нормальный скрипт.. Думаю фейспалм был за что-то похуже |
Автор: | skyb [ 26 фев 2016, 18:25 ] |
Заголовок сообщения: | Re: Ip адрес |
stark писал(а): skyb писал(а): И этот человек ещё на меня фейспалмил...)))) Нормальный скрипт.. Думаю фейспалм был за что-то похуже дело не в скрипте, а в его использовании, зачем пользоваться башем, создавать файл для переменных, если все уже встроено в биллинге и можно делать гораздо удобней, я не к коду придрался, а к юзабилити самого процесса, микроскопом забивать можно гвозди, но зачем ))) snark, я любя |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |