Externe IP herausfinden und anzeigen

Begonnen von Ralle, 30 April 2018, 18:04:33

Vorheriges Thema - Nächstes Thema

binford6000

ZitatKann mir jetzt noch jemand sagen, wie ein DOIF auszusehen hat, welches mir die neue IP per Telegram sendet?
Ich möchte also wirklich nur die (neue) IP gesendet haben, wenn diese sich geändert hat.
Klaro:
defmod myIP_DOIF_1 DOIF ([myIP:"^IP:..*.*.*$"]) (set <Telegram-Device> msg Die neue externe IPv4-Adresse lautet: [myIP:IP])
attr myIP_DOIF_1 do always

Für die Zukunft: Das kannst Du auch selbst einfach erstellen indem Du dir im Eventmonitor die Events von myIP anschaust und dann auf "Create/Modify Device" klickst...  ;)
VG Sebastian

tik-tak-tok

Hi Sebastian,

vielen Dank dafür! :-) Leider bekomme ich jetzt die IP immer zugesandt, obwohl diese sich nicht geändert hat. ;-)

Hast du dafür auch noch einen Tipp parat?

Danke & LG,
Mike

amenomade

event-on-change-reading auf dem httpmod
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

binford6000

Zitat von: amenomade am 02 Mai 2018, 20:28:38
event-on-change-reading auf dem httpmod

Bin mal davon ausgegangen da es weiter oben ja bereits in der httpmod Definition stand [emoji6]
VG Sebastian


Gesendet von iPad mit Tapatalk

CatWeazle

Hi Leutz,

ich habe leider momentan ein kleines DDNS Problem und würde gerne auf dieses hier beschriebene zurückgreifen.
Leider scheint es so nicht mehr zu funktionieren.
Suche den Fehler ?!?!?!?

Liegt es daran, dass "wieistmeineip" etwas am Inhalt ihrer Seite geändert haben?

Beste Grüße
Mike
Grüße, Mike

*******************************************************
 *******  Wird Zeit für besser Wetter !  ********
*******************************************************

MadMax-FHEM

Kann keinen Fehler finden.

Habe eben das in diesem Thread gepostete HTTPMOD mit wieistmeineip ausprobiert: funktioniert...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

CatWeazle

Hallo Joachim,
ich habe jetzt die reading01Regex geänder, da sich der Text der Webseite scheinbar geändert hat.

in: (?s)Ihre IP-Adresse lautet:.*strong>([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)
alt: (?s)Ihre IP-Adresse?.*strong>([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)
so funktioniert es jetzt auch bei mir.

Frage dazu, wie kann man das Modul HTTPMOD dazu anstoßen, die Daten neu einzulesen?
Per FHEM per shutdown restart ist recht brutal :)
Grüße, Mike

*******************************************************
 *******  Wird Zeit für besser Wetter !  ********
*******************************************************

MadMax-FHEM

Ich musste NICHTS ändern/anpassen...

Egal, wenn es läuft...

Du kannst ein reread auslösen...
...oder beim Define das Intervall angeben...

Wenn du reread NICHT hast, dann musst du das Attribut enableControlSet setzen...
...und wenn du das musst, dann ist dein fhem nicht so wirklich aktuell... ;)

(ist schon länger Standard, dass das aktiviert ist)

EDIT: statt shutdown restart geht auch "defmod" auf das Device, ist aber ähnlich "hart" ;)

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Wernieman

Btw:
ich würde Dir empfehlen eine "bessere" Seite als http://wieistmeineip.de zu nehmen.

Vergleich mal den Output mit z.B.:
http://checkip.dyndns.com/
http://checkip.amazonaws.com/
http://icanhazip.com/   (Hinweis: Wenn die IPv4 haben willst, mußt Du mit IPv4 anfragen)
http://v4.ident.me/ (Für IPv6: http://v6.ident.me/)

Und noch viele andere (Google Hilft). wieistmeineip.de ist dagegen wie ein aufgeblähter Dinosaurier ....
Die Obengenannten Seiten werden z.B. in dyndsn-scripten verwenden und damit ist die Wahrscheinlichkeit des Ändern sehr gering ....
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Otto123

Hallo Mike,

so auf die Schnelle
{qx(wget -q -O - "http://checkip.dyndns.com/"|grep -o "[0-9]\{1,3\}.[0-9]\{1,3\}.[0-9]\{1,3\}.[0-9]\{1,3\}")}

Kann man sicher besser machen ;)

Ich weiß nicht wie Du die IP verwenden willst, Du kannst sie mit set magic - set (setreading) Device {Code von oben} irgendwo hin schreiben. Mit at notify der sonst was :)

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Grafkox

Hallo zusammen,

ich wiederbelebe mal den Thread, da ich leider mit dem Auslesen meiner IPv6 Adresse nicht weiterkomme, und ich denke, dass es in diesem Thread gut als Ergänzung zu den IPv4 Adressen dienen kann.

Anbei meine Konfiguration von HTTPMOD:

defmod myIPv6 HTTPMOD http://v6.ident.me/ 86400
attr myIPv6 userattr reading01Name reading01Regex
attr myIPv6 reading01Name IP
attr myIPv6 reading01Regex (?<=<pre>)([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])
attr myIPv6 stateFormat IP


Mit dem Regex wird mit unter https://regex101.com/ auch das gewünschte Ergebnis ausgegeben, allerdings bekomme ich kein Reading angezeigt.
Kann mir ggf. jemand einen kleinen Wink geben, woran es liegen könnte?

Vielen Dank für eure Unterstützung und viele Grüße

Thorsten
Raspberry Pi 3 mit Fhem 5.9, Tablet UI 2.6, SIGNALduino, Somfy RTS, Fritzbox 7490, IT-Steckdosen, Hikvision Kameras, Xiaomi Sensoren, Tecalor THZ, E3/DC

Otto123

Hallo Thorsten,

wenn Du einfach attr myIPv6 reading01Regex .*nimmst? Die Seite liefert doch einfach die IP? Ohne jedes HTML

Konnte es jetzt nur mit v4 testen, da bei mir derzeit v6 nicht geht  :(

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Grafkox

#27
Hallo Otto,

vielen Dank für Deine Rückmeldung. Dein Vorschlag erzeugt leider auch kein Reading.

ich habe mal Verbose 5 eingeschaltet und habe folgende Einträge bei deiner Lösung im Log:

2022.02.13 19:45:05.890 5: myIPv6: set called with reread
2022.02.13 19:45:05.891 5: myIPv6: GetUpdate called (reread)
2022.02.13 19:45:06.045 5: myIPv6: AddToQueue adds type update to URL http://v6.ident.me/, no data, no headers, retry 0, initial queue len: 0
2022.02.13 19:45:06.045 5: myIPv6: HandleSendQueue called, qlen = 1
2022.02.13 19:45:06.046 4: myIPv6: HandleSendQueue sends update with timeout 2 to http://v6.ident.me/, No Data, No Header
2022.02.13 19:45:06.047 5: HttpUtils url=http://v6.ident.me/
2022.02.13 19:45:06.052 4: HttpUtils: gethostbyname v6.ident.me failed
2022.02.13 19:45:06.052 3: myIPv6: Read callback: Error: gethostbyname v6.ident.me failed
2022.02.13 19:45:06.053 4: myIPv6: Read callback: request type was update retry 0, no headers, no body
2022.02.13 19:45:06.053 5: myIPv6: Read callback: body empty
2022.02.13 19:45:06.053 4: myIPv6: Read found no charset header (bodyDecode was set to auto)
2022.02.13 19:45:06.054 5: myIPv6: GetCookies is looking for Cookies
2022.02.13 19:45:06.054 5: myIPv6: ExtractSid called, context reading, num
2022.02.13 19:45:06.055 4: myIPv6: no header to look for redirects
2022.02.13 19:45:06.055 5: myIPv6: CheckAuth decided no authentication required


vielleicht gibt das ja noch einen Aufschluss.

Edith:

ich habe gerade noch auf www.wieistmeineip.de rumprobiert. Mit der Lösung hier aus dem Thread bekomme ich zwar die IPv4 Adresse ausgegeben, aber mit derm nachfolgenden Regex:

(?<=<span id="ipv6-value">)([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])

bekomme ich zwar auf https://regex101.com/ wieder die richtige Ausgabe, aber das Reading wird wieder nicht richtig befüllt.

Danke und Gruß

Thorsten
Raspberry Pi 3 mit Fhem 5.9, Tablet UI 2.6, SIGNALduino, Somfy RTS, Fritzbox 7490, IT-Steckdosen, Hikvision Kameras, Xiaomi Sensoren, Tecalor THZ, E3/DC

Otto123

#28
erzeugt denn einfach der Link im Browser eine Ausgabe?
https://v6.ident.me/
erzeugt v4 eine Ausgabe?
https://v4.ident.me/

Wenn v6 keine Ausgabe erzeugt hat dein Netzwerk keinen ipv6 Zugang zum Internet.

Hat denn Dein FHEM IPv6?
Funktioniert das in der FHEM Kommandozeile?
{qx(wget -q -O - https://v4.ident.me/)}
Gleiches für IPv6
{qx(wget -q -O - https://v6.ident.me/)}

Alles ist Plain Text keine RegExp nötig meine ich: https://api.ident.me/
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Grafkox

Zitat von: Otto123 am 13 Februar 2022, 20:11:05
erzeugt denn einfach der Link im Browser eine Ausgabe?
https://v6.ident.me/
erzeugt v4 eine Ausgabe?
https://v4.ident.me/

Ja und Ja. In beiden Fällen gibt es die korrekte Ausgabe der IP.

Zitat von: Otto123 am 13 Februar 2022, 20:11:05
Hat denn Dein FHEM IPv6?
Funktioniert das in der FHEM Kommandozeile?
{qx(wget -q -O - https://v4.ident.me/)}
Gleiches für IPv6
{qx(wget -q -O - https://v6.ident.me/)}

Alles ist Plain Text keine RegExp nötig meine ich: https://api.ident.me/

wenn ich die beiden Befehle in FHEM absetze passiert nichts und es wird nichts angezeigt.
Raspberry Pi 3 mit Fhem 5.9, Tablet UI 2.6, SIGNALduino, Somfy RTS, Fritzbox 7490, IT-Steckdosen, Hikvision Kameras, Xiaomi Sensoren, Tecalor THZ, E3/DC