FHEM Forum

FHEM => Automatisierung => Thema gestartet von: Alex am 20 Mai 2013, 19:19:45

Titel: eigene IP mit fhem /perl herausfinden
Beitrag von: Alex am 20 Mai 2013, 19:19:45
Hallo,

mein fhem läuft auf einem kleinen Plug Computer (Debian) hinter einem Router. Um von außerhalb darauf zugreifen zu können habe ich ein VPN eingerichtet. Funktioniert auch.

Ich habe natürlich auch eine dynamische IP, die sich gelegentlich ändert. Das führt dann dazu dass ich mein zuhause nicht mehr finden kann. Auf Dienste wie DynDNS würde ich gerne verzichten.
Am liebsten würde ich mit fhem oder Perl script einmal in der Stunde meine eigene IP checken, mit der alten vergleichen und bei Veränderung eine Mail mit der neuen IP versenden. Hat das vielleicht schon mal jemand versucht?

Ich habe (noch) keine Möglichkeit gefunden, die IP herauszufinden ... den Rest würde ich bestimmt hinkriegen.

Hat da jemand eine Idee?

Lg
Titel: Aw: eigene IP mit fhem /perl herausfinden
Beitrag von: Dirk am 20 Mai 2013, 19:27:25
Hi Alex,

ich hole mir eine Liste aller Interfaces mit zugehöriger IP hier mit:

my $cmdLine = 'ip -o addr show | awk \'/inet/ {print $2, $3, $4}\'';
my @ips = `$cmdLine`;

foreach my $ipLine (@ips) {
  my ($interface, undef, $ipParts) = split(' ', $ipLine);
  my ($ip) = split('/', $ipParts);
  if ($interface ne 'lo') {
    print $interface . ':' . $ip;
  }
}

Gruß
Dirk
Titel: Aw: eigene IP mit fhem /perl herausfinden
Beitrag von: rudolfkoenig am 21 Mai 2013, 16:52:18
>  Ich habe (noch) keine Möglichkeit gefunden, die IP herauszufinden...

Falls der Router sie freiwillig (z.Bsp auf einer der HTML Seiten) rausrueckt, dann wurde ich die Daten von einem der vielen "my ip" Diensten im Internet wie. z.Bsp. http://www.heise.de/netze/tools/meine-ip-adresse/ (//www.heise.de/netze/tools/meine-ip-adresse/)  mit der FHEM Funktion GetFileFromURL() erfragen. Welcher von diesen Diensten sich am einfachsten parsen laesst das muss man vmtl. muehsam ausprobieren.
Titel: Aw: eigene IP mit fhem /perl herausfinden
Beitrag von: Ralph am 23 Mai 2013, 07:36:06
Ist dieser Aufruf einfach genug ? http://sputnicks.de/tools/ip.php (//sputnicks.de/tools/ip.php)

Und wer mehr wissen möchte: http://lesswire.info/ua.php//wap2 (//lesswire.info/ua.php//wap2)
Titel: Aw: eigene IP mit fhem /perl herausfinden
Beitrag von: fhem86 am 23 Mai 2013, 21:49:48
So bekomme ich meine externe ip:

99_mod.pm:

sub
getip
{
my $url = 'http://checkip.dyndns.org';

  use LWP::Simple;
  my $content = get $url;
  die "Couldn't get $url" unless defined $content;

  my $value = (split " " , $content)[5];
  my $value1 = (split "<" , $value)[0];

  return $value1;
}


in der fhem config:

define Job_sendnotify_ip at *06:00:00 { \
my $ip=getip;; \
fhem "set my_andnotify send $ip|Aktuelle IP|Aktuelle IP|Aktuelle IP|20|20";; \
}
Titel: Aw: eigene IP mit fhem /perl herausfinden
Beitrag von: Ralph am 24 Mai 2013, 00:12:47
Jau, das ist - natürlich - wesentlich einfacher als http://sputnicks.de/tools/ip.php (//sputnicks.de/tools/ip.php)
Titel: Antw:Aw: eigene IP mit fhem /perl herausfinden
Beitrag von: accloginsell am 02 Februar 2017, 09:58:07
Zitat von: fhem86 am 23 Mai 2013, 21:49:48
So bekomme ich meine externe ip:

99_mod.pm:

sub
getip
{
my $url = 'http://checkip.dyndns.org';

  use LWP::Simple;
  my $content = get $url;
  die "Couldn't get $url" unless defined $content;

  my $value = (split " " , $content)[5];
  my $value1 = (split "<" , $value)[0];

  return $value1;
}


in der fhem config:

define Job_sendnotify_ip at *06:00:00 { \
my $ip=getip;; \
fhem "set my_andnotify send $ip|Aktuelle IP|Aktuelle IP|Aktuelle IP|20|20";; \
}


Servus,

danke das funktioniert soweit ganz gut
Leider freezed mein FHEM dann für ca 3 Minuten
Wie kann ich dies umgehen?

Dankeschön!
Viele Grüße Nico
Titel: Antw:eigene IP mit fhem /perl herausfinden
Beitrag von: dev0 am 02 Februar 2017, 10:21:04
Anscheinend schließt der Server die Verbindung nicht. Anderen Server wählen (zB. http://icanhazip.com/) und das Splitten anpassen.
Titel: Antw:eigene IP mit fhem /perl herausfinden
Beitrag von: accloginsell am 07 Februar 2017, 10:22:12
Danke euch für die Antworten

@dev0 das funktioniert super jedoch schmeißt er mir immer meine IPV6 raus.. Kennst du eine Seite die die nur die IPV4 rauschmeißt?

Danke dir
Titel: Antw:eigene IP mit fhem /perl herausfinden
Beitrag von: dev0 am 07 Februar 2017, 10:41:30
Nö, kenne ich nicht, müßte ich auch suchen. Du könntest aber auch gezielt eine IPv4 Verbindung aufbauen. Ob und wie LWP::Simple das kann weiß ich nicht...