Скрипт для извлечения IP адреса с интерфейса

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС.

Модераторы: SLEDopit, Модераторы разделов

babahvl
Сообщения: 88
ОС: SuSe 10.3 Kubuntu 8.04

Скрипт для извлечения IP адреса с интерфейса

Сообщение babahvl »

Есть шлюз на Ubuntu Server. IP от провайдера динамический. Интерфейс ppp0.
Как с помощью скрипта выдрать IP адрес и сохранить его в переменной какой либо?
Спасибо сказали:
Аватара пользователя
Alexxx
Сообщения: 892
Статус: --==XXX==--
ОС: Archlinux current

Re: Скрипт для извлечения IP адреса с интерфейса

Сообщение Alexxx »

например так:

Код: Выделить всё

PPPIP=`/sbin/ifconfig ppp0 | grep inet | sed s/^.*addr:// | sed "s/ .*$//"`
Спасибо сказали:
babahvl
Сообщения: 88
ОС: SuSe 10.3 Kubuntu 8.04

Re: Скрипт для извлечения IP адреса с интерфейса

Сообщение babahvl »

Спасибо! То, что доктор прописал!
Спасибо сказали:
Аватара пользователя
greak
Сообщения: 485
Статус: debian user
ОС: Debian Lenny/Sid

Re: Скрипт для извлечения IP адреса с интерфейса

Сообщение greak »

/sbin/ifconfig ppp0 | egrep -o "addr:[0-9.]+" | cut -b 6-
Спасибо сказали:
babahvl
Сообщения: 88
ОС: SuSe 10.3 Kubuntu 8.04

Re: Скрипт для извлечения IP адреса с интерфейса

Сообщение babahvl »

тож работает! Спасибо! Как погляжу реализаций много может быть
Спасибо сказали:
Аватара пользователя
Kataklysm
Сообщения: 280
ОС: Linux Suse 10.2-10.3 Sles-10.1

Re: Скрипт для извлечения IP адреса с интерфейса

Сообщение Kataklysm »

Да, скриптики не чего :) Ща бы заставить после каждого подключения, полученый ип отправлять по электронной почте, совсем бы было замечательно :)
Спасибо сказали:
Аватара пользователя
Alexxx
Сообщения: 892
Статус: --==XXX==--
ОС: Archlinux current

Re: Скрипт для извлечения IP адреса с интерфейса

Сообщение Alexxx »

Kataklysm писал(а):
10.05.2008 16:30
Да, скриптики не чего :) Ща бы заставить после каждого подключения, полученый ип отправлять по электронной почте, совсем бы было замечательно :)

У мну уже давно так, и смска на сотик приходит :)
Спасибо сказали:
Аватара пользователя
Kataklysm
Сообщения: 280
ОС: Linux Suse 10.2-10.3 Sles-10.1

Re: Скрипт для извлечения IP адреса с интерфейса

Сообщение Kataklysm »

Alex, скажи пожалуйста, как реализовал? Через что?
Спасибо сказали:
Аватара пользователя
Alexxx
Сообщения: 892
Статус: --==XXX==--
ОС: Archlinux current

Re: Скрипт для извлечения IP адреса с интерфейса

Сообщение Alexxx »

Kataklysm писал(а):
10.05.2008 16:36
Alex, скажи пожалуйста, как реализовал? Через что?

Ну если так интересно, то вот:

Код: Выделить всё

[root@almss ~]# cat /etc/ppp/ip-up
#!/bin/sh
#
# This script is run by pppd when there's a successful ppp connection.
#

/etc/rc.firewall.advanc && /etc/rc.d/iptables save # && rm -f /var/run/daemons/ipup
/etc/ppp/scripts/pppip
/etc/ppp/scripts/ntop_restart
/etc/ppp/scripts/ntpd_restart &
/etc/ppp/scripts/knockd_restart &
/etc/ppp/scripts/squid_restart &
/etc/ppp/scripts/net_smtp.sh &      # вот эта строчка запускает отправку почты
/etc/ppp/scripts/httpd_restart &
/etc/ppp/scripts/mirrorsync_restart &
exit 0
[root@almss ~]#

Код: Выделить всё

[root@almss ~]# cat /etc/ppp/scripts/net_smtp.sh
#!/bin/bash
#

PPPIP=`/sbin/ifconfig ppp0 | grep inet | sed "s/^.*addr://" | sed "s/ .*$//"`
DATE=`LC_ALL=C /bin/date`

sed "s/# .*/# $DATE/" -i /etc/ppp/scripts/net_smtp.perl
sed "s/datasend.*#DATE/datasend\(\"$DATE\"\)\; #DATE/" -i /etc/ppp/scripts/net_smtp.perl
sed "s/datasend.*#IP/datasend\(\"$PPPIP\"\)\; #IP/" -i /etc/ppp/scripts/net_smtp.perl && \
perl /etc/ppp/scripts/net_smtp.perl
[root@almss ~]#

Код: Выделить всё

[root@almss ~]# cat /etc/ppp/scripts/net_smtp.perl
#!/usr/bin/perl
# Sat May 10 23:22:43 VLAST 2008

use Net::SMTP;
    $smtp = Net::SMTP->new('smtp.mail.ru');
    $smtp->auth("my_mail_login","my_mail_password");
    $smtp->mail('bla_bla_bla@mail.ru');
    $smtp->to('alex@other_my_mail_box','my_telephone_number@sms.vntc.ru');
    $smtp->data();
    $smtp->datasend("To: alex\@xxx.xxx.xxx\n");
    $smtp->datasend("\n");
    $smtp->datasend("Sat May 10 23:22:43 VLAST 2008"); #DATE
    $smtp->datasend("\n");
    $smtp->datasend("77.35.00.00"); #IP
    $smtp->dataend();
    $smtp->quit;
[root@almss ~]#
Спасибо сказали:
Аватара пользователя
Kataklysm
Сообщения: 280
ОС: Linux Suse 10.2-10.3 Sles-10.1

Re: Скрипт для извлечения IP адреса с интерфейса

Сообщение Kataklysm »

А какие почтовый сервера (программы) у тебя стоят? Или в данном случае они вообще не нужны?
Спасибо сказали:
Аватара пользователя
Voice
Сообщения: 1073
Статус: столлманист
ОС: Debian GNU/Linux

Re: Скрипт для извлечения IP адреса с интерфейса

Сообщение Voice »

Вот тут мануальчик по отправке адреса на мыло через почтовый сервер гугла: http://wiki.linuxforum.org.ua/index.php5?t...%88%D1%82%D1%83
P.S.
Правда на украинском :)
"И может собственных Платонов и быстрых разумом Невтонов российская земля рождать."
М. В. Ломоносов
Спасибо сказали:
Аватара пользователя
Alexxx
Сообщения: 892
Статус: --==XXX==--
ОС: Archlinux current

Re: Скрипт для извлечения IP адреса с интерфейса

Сообщение Alexxx »

Kataklysm писал(а):
10.05.2008 16:58
А какие почтовый сервера (программы) у тебя стоят? Или в данном случае они вообще не нужны?

Как видно из последнего скрипта, используется перловый модуль Net::SMTP - Simple Mail Transfer Protocol Client. Если smtp-авторизация не нужна, строчку " $smtp->auth("my_mail_login","my_mail_password");" нужно убрать. У меня впринципе стоит courier-mta, но тут он ни каким боком.
Спасибо сказали:
Аватара пользователя
Kataklysm
Сообщения: 280
ОС: Linux Suse 10.2-10.3 Sles-10.1

Re: Скрипт для извлечения IP адреса с интерфейса

Сообщение Kataklysm »

Alexxx писал(а):
10.05.2008 17:28
Kataklysm писал(а):
10.05.2008 16:58
А какие почтовый сервера (программы) у тебя стоят? Или в данном случае они вообще не нужны?

Как видно из последнего скрипта, используется перловый модуль Net::SMTP - Simple Mail Transfer Protocol Client. Если smtp-авторизация не нужна, строчку " $smtp->auth("my_mail_login","my_mail_password");" нужно убрать. У меня впринципе стоит courier-mta, но тут он ни каким боком.


Alexxx, вы конечно извините, но я перл не знаю и у меня выводится вот такой результат:

Код:

inetserver:/home/kataklysm/sc# ./smtp.perl Unknown callback: 'authname'. (user|auth|language|pass)

Как лечить?
Спасибо сказали:
Аватара пользователя
Alexxx
Сообщения: 892
Статус: --==XXX==--
ОС: Archlinux current

Re: Скрипт для извлечения IP адреса с интерфейса

Сообщение Alexxx »

Я тоже не особо в зуб ногой, попробуй

Код: Выделить всё

#!/usr/bin/perl -d
в начале скрипта для отладки
Спасибо сказали:
Аватара пользователя
Kataklysm
Сообщения: 280
ОС: Linux Suse 10.2-10.3 Sles-10.1

Re: Скрипт для извлечения IP адреса с интерфейса

Сообщение Kataklysm »

Alexxx писал(а):
10.05.2008 18:08
Я тоже не особо в зуб ногой, попробуй

Код: Выделить всё

#!/usr/bin/perl -d
в начале скрипта для отладки

Если тебе не сложно отправь мне пожалуйста свой файл /usr/lib/perl5/5.8.8/Net/SMTP.pm (у тебя конечно же может быть в другом месте)
Спасибо сказали:
Аватара пользователя
Sandle_X
Сообщения: 117
ОС: Gentoo Base System

Re: Скрипт для извлечения IP адреса с интерфейса

Сообщение Sandle_X »

Сpan в помощь...
/The information should be free.../ <Gentoo Base System version 1.12.10>
Конференция форума в Jabber: linuxforum@conference.jabber.ru
Спасибо сказали:
Аватара пользователя
Olden Gremlin
Сообщения: 365
Статус: RAP22-RIPE
ОС: Debian GNU/Linux Wheezy

Re: Скрипт для извлечения IP адреса с интерфейса

Сообщение Olden Gremlin »

babahvl писал(а):
10.05.2008 15:29
Есть шлюз на Ubuntu Server. IP от провайдера динамический. Интерфейс ppp0.Как с помощью скрипта выдрать IP адрес и сохранить его в переменной какой либо?
если этот скрип вызывается при поднятии интерфейса из /etc/ppp/ip-up.d то интересней чем кажется :)

Код: Выделить всё

#    Arg                Name                          Example
#    $1 $PPP_IFACE      Interface name                ppp0
#    $2 $PPP_TTY        The tty                       ttyS1
#    $3 $PPP_SPEED      The link speed                38400
#    $4 $PPP_LOCAL      Local IP number               12.34.56.78
#    $5 $PPP_REMOTE     Peer  IP number               12.34.56.99
#    $6 $PPP_IPPARAM    Optional ``ipparam'' value    foo
«Когда у общества нет цветовой дифференциации штанов — то нет цели!»
nic-hdl: RAP22-RIPE
Спасибо сказали: