Скрипт для извлечения IP адреса с интерфейса
Модераторы: SLEDopit, Модераторы разделов
-
babahvl
- Сообщения: 88
- ОС: SuSe 10.3 Kubuntu 8.04
Скрипт для извлечения IP адреса с интерфейса
Есть шлюз на Ubuntu Server. IP от провайдера динамический. Интерфейс ppp0.
Как с помощью скрипта выдрать IP адрес и сохранить его в переменной какой либо?
Как с помощью скрипта выдрать IP адрес и сохранить его в переменной какой либо?
-
Alexxx
- Сообщения: 892
- Статус: --==XXX==--
- ОС: Archlinux current
Re: Скрипт для извлечения IP адреса с интерфейса
например так:
Код: Выделить всё
PPPIP=`/sbin/ifconfig ppp0 | grep inet | sed s/^.*addr:// | sed "s/ .*$//"`-
babahvl
- Сообщения: 88
- ОС: SuSe 10.3 Kubuntu 8.04
Re: Скрипт для извлечения IP адреса с интерфейса
Спасибо! То, что доктор прописал!
-
greak
- Сообщения: 485
- Статус: debian user
- ОС: Debian Lenny/Sid
Re: Скрипт для извлечения IP адреса с интерфейса
/sbin/ifconfig ppp0 | egrep -o "addr:[0-9.]+" | cut -b 6-
-
babahvl
- Сообщения: 88
- ОС: SuSe 10.3 Kubuntu 8.04
Re: Скрипт для извлечения IP адреса с интерфейса
тож работает! Спасибо! Как погляжу реализаций много может быть
-
Kataklysm
- Сообщения: 280
- ОС: Linux Suse 10.2-10.3 Sles-10.1
Re: Скрипт для извлечения IP адреса с интерфейса
Да, скриптики не чего
Ща бы заставить после каждого подключения, полученый ип отправлять по электронной почте, совсем бы было замечательно 
-
Alexxx
- Сообщения: 892
- Статус: --==XXX==--
- ОС: Archlinux current
-
Kataklysm
- Сообщения: 280
- ОС: Linux Suse 10.2-10.3 Sles-10.1
Re: Скрипт для извлечения IP адреса с интерфейса
Alex, скажи пожалуйста, как реализовал? Через что?
-
Alexxx
- Сообщения: 892
- Статус: --==XXX==--
- ОС: Archlinux current
Re: Скрипт для извлечения IP адреса с интерфейса
Ну если так интересно, то вот:
Код: Выделить всё
[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 адреса с интерфейса
А какие почтовый сервера (программы) у тебя стоят? Или в данном случае они вообще не нужны?
-
Voice
- Сообщения: 1073
- Статус: столлманист
- ОС: Debian GNU/Linux
Re: Скрипт для извлечения IP адреса с интерфейса
Вот тут мануальчик по отправке адреса на мыло через почтовый сервер гугла: http://wiki.linuxforum.org.ua/index.php5?t...%88%D1%82%D1%83
P.S.
Правда на украинском
P.S.
Правда на украинском
"И может собственных Платонов и быстрых разумом Невтонов российская земля рождать."
М. В. Ломоносов
М. В. Ломоносов
-
Alexxx
- Сообщения: 892
- Статус: --==XXX==--
- ОС: Archlinux current
Re: Скрипт для извлечения IP адреса с интерфейса
Как видно из последнего скрипта, используется перловый модуль 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 адреса с интерфейса
Alexxx писал(а): ↑10.05.2008 17:28
Как видно из последнего скрипта, используется перловый модуль 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 адреса с интерфейса
Я тоже не особо в зуб ногой, попробуй в начале скрипта для отладки
Код: Выделить всё
#!/usr/bin/perl -d-
Kataklysm
- Сообщения: 280
- ОС: Linux Suse 10.2-10.3 Sles-10.1
Re: Скрипт для извлечения IP адреса с интерфейса
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 адреса с интерфейса
Сpan в помощь...
/The information should be free.../ <Gentoo Base System version 1.12.10>
Конференция форума в Jabber: linuxforum@conference.jabber.ru
Конференция форума в Jabber: linuxforum@conference.jabber.ru
-
Olden Gremlin
- Сообщения: 365
- Статус: RAP22-RIPE
- ОС: Debian GNU/Linux Wheezy
Re: Скрипт для извлечения 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