1 (edytowany przez Skajper4 2014-01-23 23:00:10)

Temat: Skrypt wykrywający IP i wysyłający na stronę/mail

Witam. Czy mógłby ktoś mi napisać taki skrypt który pobierałby zewnętrzny IP ze strony i wysyłał go na inną stronę/maila? Router mam za bramą, więc wykrywanie po wan-ie nic nie da, a DDNS coś nie odświeża IP na stronie. Chyba, że to się da jakoś naprawić?

2

Odp: Skrypt wykrywający IP i wysyłający na stronę/mail

  moje_IP=`  elinks www.mojeip.com.pl | grep -A2 Twoje | tail -n1 | sed  -e 's/ //g'` 

przypisuje   do zmiennej moje_IP      numer Twojego IP     a wysłanie  to już  jak wolisz   ja wysyłam  np plik  na serwer FTP

3 (edytowany przez Rafciq 2014-01-24 01:07:56)

Odp: Skrypt wykrywający IP i wysyłający na stronę/mail

Witaj,
jeżeli to http://dyndns.org lub inaczej http://dyn.com/dns/ albo dla http://no-ip.com to możesz wykorzystać mój skrypt który jest tu https://raw.github.com/Rafciq/openwrt/m … -update.sh lub tu:

#!/bin/sh
# DDNS update for DYNDNS.org
# Script version 1.02 Rafal Drzymala 2013,2014
#
# Changelog
#    1.00    RD    First stable code
#    1.01    RD    Added detectip parameter
#    1.02    RD    Added service parameter
#
# Destination /etc/hotplug.d/iface/90-ddns-update
#

. /lib/functions.sh
. /lib/functions/network.sh

local wan_if

do_ddns() {
    local enabled
    local service
    local username
    local password
    local domain
    local detectip
    local wan_ip
    local service_url
    config_get_bool enabled $1 enabled 1
    if [ $enabled == 1 ]; then
        config_get service $1 service "dyndns.org"
        config_get username $1 username
        config_get password $1 password
        config_get domain $1 domain
        config_get_bool detectip $1 detectip 0
        case $service in
            dyndns.org)
                service_url="members.dyndns.org/nic/update";;
            no-ip.com)
                service_url="dynupdate.no-ip.com/nic/update";;
            *)
                logger -p user.notice -t "ddns-update[$service]" "Unknown service: $service"
                return;;
        esac
        if [ $detectip == 1 ]; then
            wan_ip="detect IP"
            myip=""
        else
            network_get_ipaddr wan_ip $wan_if
            if [ "$wan_ip" == "" ]; then
                logger -p user.notice -t "ddns-update[$service]" "Unable to get interface $wan_if IP address."
                return
            fi
            myip="&myip=$wan_ip"
        fi
        logger -p user.notice -t "ddns-update[$service]" "Register in DDNS because interface $wan_if ($wan_ip) is up."
        local result=$(wget -q -O - "http://$username:$password@$service_url?hostname=$domain$myip")
        case $result in
            badauth)
                logger -p user.notice -t "ddns-update[$service]" "The username and password pair do not match a real user.";;
            good*)
                logger -p user.notice -t "ddns-update[$service]" "The update was successful, and the hostname is now updated.";;
            nochg*)
                logger -p user.notice -t "ddns-update[$service]" "The update changed no settings, and is considered abusive ($result).";;
            notfqdn)
                logger -p user.notice -t "ddns-update[$service]" "The hostname specified is not a fully-qualified domain name (not in the form hostname.dyndns.org or domain.com).";;
            nohost)
                logger -p user.notice -t "ddns-update[$service]" "The hostname specified does not exist in this user account (or is not in the service specified in the system parameter).";;
            numhost)
                logger -p user.notice -t "ddns-update[$service]" "Too many hosts (more than 20) specified in an update. Also returned if trying to update a round robin (which is not allowed).";;
            abuse)
                logger -p user.notice -t "ddns-update[$service]" "The hostname specified is blocked for update abuse.";;
            badagent)
                logger -p user.notice -t "ddns-update[$service]" "The user agent was not sent or HTTP method is not permitted (we recommend use of GET request method).";;
            dnserr)
                logger -p user.notice -t "ddns-update[$service]" "DNS error encountered.";;
            "911")
                logger -p user.notice -t "ddns-update[$service]" "There is a problem or scheduled maintenance on our side.";;
            *)
                logger -p user.notice -t "ddns-update[$service]" "Unknown result: $result";;
        esac
    fi
}

network_find_wan wan_if
[ "$wan_if" == "" ] && exit 0
if [ "$INTERFACE" == "$wan_if" ] && [ "$ACTION" == "ifup" ]; then
    config_load system
    config_foreach do_ddns ddns
fi
exit 0
# Done.

Skrypt wklejasz do pliku /etc/hotplug.d/iface/90-ddns-update

a w pliku /etc/config/system dodajesz sekcję:

config ddns 'wan_no_ip'
    option enabled '1'
    option service 'no-ip.com'
    option domain 'nazwa_hosta'
    option detectip '1'
    option username 'nazwa_użytkownika'
    option password 'hasło'

W tej wersji z parametrem detectip ustawionym na 1 będzie ustawiał IP twojego routera widoczne z internetu.

Każdorazowe poniesienie wan-u będzie skutkowało aktualizacją IP w DynDNS. Możesz sprawdzić działanie wykonując:

ifup wan
logread
install.sh - Aktualizacja systemu, sysinfo.sh - Info.o systemie, openvpn-auth.sh - Login dla OpenVPN
Tu moje skrypty na GitHub

4

Odp: Skrypt wykrywający IP i wysyłający na stronę/mail

Używam noip.com

5 (edytowany przez Rafciq 2014-01-24 00:04:14)

Odp: Skrypt wykrywający IP i wysyłający na stronę/mail

To prawie identyczny protokół, wystarczy w skrypcie zmienić z members.dyndns.org na dynupdate.no-ip.com

install.sh - Aktualizacja systemu, sysinfo.sh - Info.o systemie, openvpn-auth.sh - Login dla OpenVPN
Tu moje skrypty na GitHub

6

Odp: Skrypt wykrywający IP i wysyłający na stronę/mail

Tak też się zastanawiałem. Czy jak dodam sobie ten skrypt do cron-a, to będę mógł usunąć luci-app-ddns?

7 (edytowany przez Rafciq 2014-01-24 00:58:17)

Odp: Skrypt wykrywający IP i wysyłający na stronę/mail

Tak.
W jakim celu chcesz dodać do cron-a?

Zmieniłem skrypt tak aby działał dla dyndsn.org i no-ip.com

install.sh - Aktualizacja systemu, sysinfo.sh - Info.o systemie, openvpn-auth.sh - Login dla OpenVPN
Tu moje skrypty na GitHub

8 (edytowany przez Skajper4 2014-01-24 01:09:47)

Odp: Skrypt wykrywający IP i wysyłający na stronę/mail

Chcę dodać aby co jakiś czas uaktualniał mi tego ddns-a. Wan mam cały czas podniesiony więc wykrywanie wg. jego stanu raczej nie zda egzaminu a nawet jego zmiana nie ma nic do zewnętrznego adresu, ponieważ jak napisałem, stoi za bramą.

9 (edytowany przez Rafciq 2014-01-24 01:12:04)

Odp: Skrypt wykrywający IP i wysyłający na stronę/mail

Jak do cron-a to albo skrypt przerobisz i będziesz go wywoływał albo będziesz wywoływał to ifup wan z cron-a

install.sh - Aktualizacja systemu, sysinfo.sh - Info.o systemie, openvpn-auth.sh - Login dla OpenVPN
Tu moje skrypty na GitHub

10 (edytowany przez Skajper4 2014-01-24 01:17:53)

Odp: Skrypt wykrywający IP i wysyłający na stronę/mail

Troszkę go przerobię i po prostu podlinkuję do crona np. co godzinkę.
PS. Ta stronka nazywa się noip.com, nie no-ip.com (to jedynie przekierowanie). I chyba pod tym samym adresem się aktualizuje.

11

Odp: Skrypt wykrywający IP i wysyłający na stronę/mail

Masz bazę do działania, powodzenia.

install.sh - Aktualizacja systemu, sysinfo.sh - Info.o systemie, openvpn-auth.sh - Login dla OpenVPN
Tu moje skrypty na GitHub

12

Odp: Skrypt wykrywający IP i wysyłający na stronę/mail

Skajper4 napisał/a:

PS. Ta stronka nazywa się noip.com, nie no-ip.com (to jedynie przekierowanie). I chyba pod tym samym adresem się aktualizuje.

Dane brałem z dokumentacji.

install.sh - Aktualizacja systemu, sysinfo.sh - Info.o systemie, openvpn-auth.sh - Login dla OpenVPN
Tu moje skrypty na GitHub

13 (edytowany przez Skajper4 2014-01-24 03:27:58)

Odp: Skrypt wykrywający IP i wysyłający na stronę/mail

No to czeka mnie chwila posiedzenia. Z tego co widzę, to częścią sukcesu jest to, że usunę wykrywanie wan, wtedy skrypt będzie chodził tzw. "na krótko". Ew. od określonej linijki.
Edit. Zrobiłem to innym, bardziej "noobskim" sposobem. Pobieram sobie stronę wget-em whatsmyip.info do tempa a później wrzucam na ftp wput-em... Nie chciało mi się już dzisiaj nic robić to zrobiłem na szybko, no i jakoś to wygląda. Jak na razie łączę się przez same IP, jeszcze mam zamiar coś zrobić, ale to już jutro, tzn. dzisiaj...

14

Odp: Skrypt wykrywający IP i wysyłający na stronę/mail

Przecież skrypt ddns potrafi także brać adres z zewnętrznego źródła (np. eko.one.pl/host.php), więc nie ma kompletnie znaczenia czy stoi on na bramą i 15 routerami, bo będzie widział adres zewnętrzny. http://eko.one.pl/?p=openwrt-ddns zobcz

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

15 (edytowany przez Skajper4 2014-01-24 14:58:51)

Odp: Skrypt wykrywający IP i wysyłający na stronę/mail

Ale w tym problem, że ten skrypt nie pobierał adresu ze strony. Domyślnie była chyba strona dyndns-a. Z komputera i routera był do niej dostęp..

16

Odp: Skrypt wykrywający IP i wysyłający na stronę/mail

Jeszcze raz - możesz sobie dowolną stronę ustawić którą będzie sprawdzał. A tych w internecie jest cała masa.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

17 (edytowany przez Skajper4 2014-02-04 16:44:55)

Odp: Skrypt wykrywający IP i wysyłający na stronę/mail

Tak, wiem, ale po prostu napisałem, że jej nie zmieniłem. Ale ok, spróbuję z inną.
Niestety nie działa ;/