IPV4 Adressen nicht aus Deutschland

Begonnen von juergen012, 05 Juni 2021, 13:05:10

Vorheriges Thema - Nächstes Thema

juergen012

Hallo,
von meinem Provider bekomme ich täglich eine neue Ipv 4 Adresse. Oft ist diese aber nicht aus Deutschland, sondern wird als Adresse eines anderen Landes erkannt. Dadurch habe ich teilweise Probleme mit Installationen. Besteht die Möglichkeit, bei einer nicht "konformen" Adresse, die Internetverbindung zu "kappen", bis eine  "konforme" Adresse zugeteilt wird??
Momentan mache ich das händisch. Die öffentlich Adresse wird in fhem angezeigt und wenn es Probleme gibt, dann frage ich über utrace die Lokalität ab. Heute habe ich z.B. eine Adresse aus der Ukraine.. Durch (teilweise mehrmaliges) neuverbinden in der Fritzbox bekomme ich irgendwann eine "konforme" Adresse.
Mangels meiner Programierkenntnisse habe ich ein Problem dies zu automatisieren. Vielleicht nimmt mich ja jemand an die Hand..

Beste Grüße
Jürgen K.
Fhem unter Proxmox

pcbastler

Hast du die Adressen mal bei RIPE geprüft? Oder nutzt du zusätzlich noch ein VPN?

juergen012

Nein, bei Ripe habe ich noch nicht getestet. Mache ich über Utrace.
Ich nutze WireGuard für den VPN Zugang. Das funktioniert. Nur bei z.B. bei Installationen habe ich Probleme mit den IP Adressen, weil die nicht für Deutschland zugeteilt sind.
Fhem unter Proxmox

mi.ke

Zitat von: juergen012 am 05 Juni 2021, 13:05:10
Durch (teilweise mehrmaliges) neuverbinden in der Fritzbox bekomme ich irgendwann eine "konforme" Adresse.

Ein Teil der Lösung Deines Problems könnte der Fork des Fritzbox-Moduls von Jörg sein.
https://forum.fhem.de/index.php/topic,118150.msg1125692.html#msg1125692

Mit diesem Modul könntest Du Dir schon mal automatisiert eine neue IP holen:
get Fritzbox luaFunction internet/inetstat_monitor.lua?myXhr=1&action=disconnect&useajax=1&xhr=1

Hoffe das hilft Dir weiter
cheers
mi.ke

FHEM 5.9 | RPi4 + 5 x RPi(Z) + FB7590 + FB 6890 LTE via LAN und WAN (VPN) verbunden.
2 x CUL868 + 3 x RFXTRX(e) + 6 x HMwLanGW + 4 x z2tGw + 5 x LGW + 2 x IRBlast + CO2 +++
FS20, FHT, FMS, Elro(mod), CM160, Revolt, LGTV, STV, AVR, withings, HM-sec-*, HM-CC-RT-DN, AMAD, PCA301, arlo, Aqara

Otto123

Hallo Jürgen,

Ein paar Anregungen:
Das reconnect geht auch von FHEM aus: https://wiki.fhem.de/wiki/FRITZBOX#TR-064_Beispiele
Ein Script was Deine Location ermittelt, Shell Beispiel:
curl http://ip-api.com/json/$(curl -s https://ipinfo.io/ip)
Gibt einen json String mit Deiner Lokation.

Das müsste man umwandeln, auswerten und reagieren :) da gibt es bestimmt viele Möglichkeiten. Vielleicht kann man auch die box_ipExtern vom Fritzbox Device direkt in ein jsonmod abfrage einpacken...

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

juergen012

Fhem unter Proxmox

pcbastler

OT: Was ich bei der Geschichte überhaupt nicht verstehe: Wieso vergibt ein deutscher Provider ausländische IP-Adressen?

juergen012

Er hat wohl zu wenig ipv 4 adressen geordert...
Fhem unter Proxmox

justme1968

da man weder einfach 'fremde' adressen vergeben kann noch die vergabe einzel adress weise erfolgt hat der provider vermutlich einfach einen zusätzlichen bisher unbenutzten block gekauft. vermutlich ist einfach die information das es 'ausländisch' ist veraltet.

wer oder was prüft denn aus welchem land die adresse angeblich ist?
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

juergen012

Hallo,
Aktuell hatte ich das Problem Ms Office 365 zu installieren. Die damalige ip Adresse war 31.29.60.47.
Nachdem ich die Adresse erneuert hatte (134.101.159.128), funktionierte die Installation. Utrace gab den Iran als Land an.
Beste Grüße
Jürgen K.
Fhem unter Proxmox

Otto123

#10
Gerade mal probiert:
Als Grundlage:
define Location JsonMod http://ip-api.com/json/1.1.1.1
attr Location readingList complete()

Dann die aktuelle IP Adresse dazu (FHEM Kommandozeile):
{my $IP=ReadingsVal('FB7490','box_ipExtern','8.8.8.8');;fhem("modify Location http://ip-api.com/json/$IP")}
set Location reread

Liefert die Readings der Lokation komplett :)
Ich weiß, das ist jetzt bloß ein Würgaround - vielleicht auch aus Unkenntnis.
Man müsste der definition von jsonmod einen dynamischen Anteil mitgeben können. Ich frage mal den Modulautor ob das geht...
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

herrmannj


Otto123

Dann wäre ein Lösungsansatz:
Der Vorschlag von Jörg
defmod myip JsonMod https://api.myip.com/
attr myip readingList complete()

Ein notify auf die Fritzbox:
define n_FBipExtern notify Fritzbox:box_ipExtern:.* set myip reread
Ein notify auf das Land:
define n_myip notify myip:country:.* {if ($EVTPART1 ne "Germany") {fhem("get Fritzbox tr064Command WANIPConnection:1 wanipconnection1 ForceTermination")}}
Hauptsache die Schleife löst sich auf, das müsste man zur Sicherheit noch einbauen. Oder erstmal nur mit Nachrichten arbeiten. Oder nur manuell auslösen.
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

juergen012

Hallo,
zunächst mal VIELEN DANK für die tolle Hilfe. Damit hatte ich nicht gerechnet.
Wenn ich defmod myip JsonMod https://api.myip.com/
attr myip readingList complete()


ausführe bekomme ich Germany als Land angezeigt. In utrace wird mir aber CH als Land genannt.
Es gibt eine API von utrace

http://en.utrace.de/api.php.

Damit habe ich rumgespielt, bekomme aber mit HTTPMOD keine Ergebnisse. Da zeigen sich wieder die mangelnden Kenntnisse..
Vielleicht kann mir ja jemand den Weg aufzeigen das XML Interface in fhem einzubinden..


Fhem unter Proxmox

JoWiemann

#14
Hallo,

hier ein Vorschlag mit HTTPMOD


defmod IP_Localisation HTTPMOD http://xml.utrace.de/?query=%%URL%% 7200
attr IP_Localisation enableControlSet 1
attr IP_Localisation reading01Name IP_Country
attr IP_Localisation reading01Regex <countrycode>(.*?)</countrycode>
attr IP_Localisation replacement01Mode expression
attr IP_Localisation replacement01Regex %%URL%%
attr IP_Localisation replacement01Value ReadingsVal("FritzBox", "box_ipExtern", "")
attr IP_Localisation showBody 1
attr IP_Localisation useSetExtensions 1
attr IP_Localisation userReadings IP_HTTP_BODY { InternalVal('IP_Localisation','httpbody','') }
attr IP_Localisation stateFormat {ReadingsVal("FritzBox", "box_ipExtern", "")}


Über ein notify oder doif kannst Du dann auf das Reading IP_Country reagieren.

Grüße Jörg
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM