Autor Thema: IP von öffentlichem DNS Namen in Reading  (Gelesen 273 mal)

Offline TWART016

  • Sr. Member
  • ****
  • Beiträge: 678
IP von öffentlichem DNS Namen in Reading
« am: 09 Januar 2018, 20:25:27 »
Hallo,

ich benötige die IP Adresse von einem öffentlichen DNS Namen in einem Reading.

z.B: die 172.217.22.227
PING google.de (172.217.22.227) 56(84) bytes of data.

Wie bekomme ich das bestmöglich hin?


Gruß
TWART016
Intel NUC, Raspberry Pi,CUL 433+868, JeeLink, Uniroll, LD382/LD686 + WifiLight, Eventghost, Tablet UI, Homekit/Homebridge/Siri, Alexa, Squeezebox, Onkyo, MAX, Harmony, KODI, Winconnect, Geofancy, Nmap, Sysmon, Telegram

Offline kadettilac89

  • Sr. Member
  • ****
  • Beiträge: 551

Offline dev0

  • Developer
  • Hero Member
  • ****
  • Beiträge: 3096
    • _.:|:._
Antw:IP von öffentlichem DNS Namen in Reading
« Antwort #2 am: 10 Januar 2018, 10:13:29 »
sub getIp($) {
  use Socket;
  my $ip = inet_ntoa(inet_aton(shift));
  setreading(...);
}

Offline TWART016

  • Sr. Member
  • ****
  • Beiträge: 678
Antw:IP von öffentlichem DNS Namen in Reading
« Antwort #3 am: 13 Januar 2018, 00:26:33 »
sub getIp($) {
  use Socket;
  my $ip = inet_ntoa(inet_aton(shift));
  setreading(...);
}
Muss das setreading nicht in das at? Oder wie muss die Syntax für setreading aussehen?

Intel NUC, Raspberry Pi,CUL 433+868, JeeLink, Uniroll, LD382/LD686 + WifiLight, Eventghost, Tablet UI, Homekit/Homebridge/Siri, Alexa, Squeezebox, Onkyo, MAX, Harmony, KODI, Winconnect, Geofancy, Nmap, Sysmon, Telegram

Offline MadMax-FHEM

  • Hero Member
  • *****
  • Beiträge: 3107
  • NIVEAu ist keine Creme...
Antw:IP von öffentlichem DNS Namen in Reading
« Antwort #4 am: 13 Januar 2018, 01:01:33 »
Wieso ein 'at'?

Die IP des DNS ändert sich doch nicht (so oft)!?

Ansonsten halt im 'at' die Funktion mit dem Namen des DNS aufrufen...

Wie so vieles steht die Verwendung von setreading in der commandref:

https://fhem.de/commandref_DE.html#setreading

in deinem Fall sowas:

setreading GERÄTENAME_WO_DAS_READING_DRIN_STEHEN_SOLL NAME_WIE_DAS_READING_HEISSEN_SOLL $ip
Gruß, Joachim
FHEM 5.8 Pi 3: HM-CFG-USB, 40x HM, ZWave-USB, 5x ZWave, EnOcean-PI, 3x EnOcean, DashButtons, CO2, ESP-Multisensor, FireTV, NanoLeaf
FHEM 5.8 PI 2: HM-CFG-USB, 23x HM, ZWave-USB, 3x ZWave, EnOcean-PI, 3x EnOcean, CO2, KODI, ha-bridge
FHEM 5.8 PI 3 (Test): HM-MOD-PCB, Alexa (alexa-fhem), Google Home

Offline TWART016

  • Sr. Member
  • ****
  • Beiträge: 678
Antw:IP von öffentlichem DNS Namen in Reading
« Antwort #5 am: 13 Januar 2018, 12:04:02 »
Ich vermute bei mir schon. Deshalb will ich herausfinden wann sich die IP ändert, und dann mit der IP von meinem FQDN vergleichen.

Setreading kenne ich. Nur wenn ich das so in die Routine einfüge, gibt es einen Syntaxfehler beim at
sub getIp($) {
  use Socket;
  my $ip = inet_ntoa(inet_aton(shift));
  setreading oeffentlicheIP IP $ip;
}

+*00:05:00 {
my $ip=getIp;
setreading oeffentlicheIP IP $ip;
}
Intel NUC, Raspberry Pi,CUL 433+868, JeeLink, Uniroll, LD382/LD686 + WifiLight, Eventghost, Tablet UI, Homekit/Homebridge/Siri, Alexa, Squeezebox, Onkyo, MAX, Harmony, KODI, Winconnect, Geofancy, Nmap, Sysmon, Telegram

Offline MadMax-FHEM

  • Hero Member
  • *****
  • Beiträge: 3107
  • NIVEAu ist keine Creme...
Antw:IP von öffentlichem DNS Namen in Reading
« Antwort #6 am: 13 Januar 2018, 12:54:35 »
Welcher Fehler wäre hilfreich...
...hellsehen kann ich (noch) nicht... ;)

Entweder im at die Sub aufrufen:

{getIp(DavonWillIchDieIp)}

Oder da du in perl bist ( dies: { } ) für setreading zurück nach fhem:

fhem("setreading OeffentlicheIp IP $ip")

Kurz, da nur Handy...

Gruß, Joachim
FHEM 5.8 Pi 3: HM-CFG-USB, 40x HM, ZWave-USB, 5x ZWave, EnOcean-PI, 3x EnOcean, DashButtons, CO2, ESP-Multisensor, FireTV, NanoLeaf
FHEM 5.8 PI 2: HM-CFG-USB, 23x HM, ZWave-USB, 3x ZWave, EnOcean-PI, 3x EnOcean, CO2, KODI, ha-bridge
FHEM 5.8 PI 3 (Test): HM-MOD-PCB, Alexa (alexa-fhem), Google Home

Offline TWART016

  • Sr. Member
  • ****
  • Beiträge: 678
Antw:IP von öffentlichem DNS Namen in Reading
« Antwort #7 am: 13 Januar 2018, 14:20:15 »
Ups, Fehlermeldung vergessen. Beim speichern des at kommt die Meldung:
Not enough arguments for main::getIp at (eval 1624217) line 2, at EOF

dev0 hatte geschrieben, darüber bekomme ich die IP heraus. Ich kenne die Funktion nicht, ist das ein Systembefehl?
inet_ntoa(inet_aton(shift))
Was muss ich in die Klammern eintragen, wenn ich die IP mit Hilfe der Funktion auslesen möchte?
{getIp(DavonWillIchDieIp)}
Intel NUC, Raspberry Pi,CUL 433+868, JeeLink, Uniroll, LD382/LD686 + WifiLight, Eventghost, Tablet UI, Homekit/Homebridge/Siri, Alexa, Squeezebox, Onkyo, MAX, Harmony, KODI, Winconnect, Geofancy, Nmap, Sysmon, Telegram

Offline MadMax-FHEM

  • Hero Member
  • *****
  • Beiträge: 3107
  • NIVEAu ist keine Creme...
Antw:IP von öffentlichem DNS Namen in Reading
« Antwort #8 am: 13 Januar 2018, 14:53:04 »
So wie ich geschrieben habe.

Die Funktion getIp braucht einen Parameter.
Ich vermute mal den Namen wozu du die IP willst...

Gruß, Joachim
FHEM 5.8 Pi 3: HM-CFG-USB, 40x HM, ZWave-USB, 5x ZWave, EnOcean-PI, 3x EnOcean, DashButtons, CO2, ESP-Multisensor, FireTV, NanoLeaf
FHEM 5.8 PI 2: HM-CFG-USB, 23x HM, ZWave-USB, 3x ZWave, EnOcean-PI, 3x EnOcean, CO2, KODI, ha-bridge
FHEM 5.8 PI 3 (Test): HM-MOD-PCB, Alexa (alexa-fhem), Google Home

Offline dev0

  • Developer
  • Hero Member
  • ****
  • Beiträge: 3096
    • _.:|:._
Antw:IP von öffentlichem DNS Namen in Reading
« Antwort #9 am: 13 Januar 2018, 14:56:57 »
{setreading("device","reading",getIp("fqdn")}
device, reading, fqdn ersetzen und die sub getIp inne 99_myUtils.pm.

Offline dev0

  • Developer
  • Hero Member
  • ****
  • Beiträge: 3096
    • _.:|:._
Antw:IP von öffentlichem DNS Namen in Reading
« Antwort #10 am: 13 Januar 2018, 15:37:07 »
Zitat
ist das ein Systembefehl?
Ist Dein google kaputt? ;) Es ist eine Funktion aus dem Socket Perlmodul.
Man sollte noch erwähnen, dass die Sub getIp blockierend arbeitet, wenn der (lokale) DNS Server keine Antwort liefert, weil zB. der INternetzugang gestört ist. Nicht blockierend kann ich das aber nicht aus dem Kopf...

 

decade-submarginal