Ich nutze seit längerem einen Code zum Anzeigen der IP

Begonnen von moonsorrox, 17 Februar 2016, 01:54:17

Vorheriges Thema - Nächstes Thema

moonsorrox

diesen Code habe ich in der 99_myUtils hinterlegt..

sub
getip(){
   my ($hash) = @_;

   my $cmdLine = 'hostname -I';
   my @ips = `$cmdLine`;
   return ( "@ips" );
}


in meiner RSS Anzeige nutze ich den Aufruf zum Anzeigen der IP
rgb 4876FF
moveby 0 25
text x y  { trim(getip()) }


aber heute soweit ich das beobachtet habe tut er es nicht mehr und zeigt mir eine ellenlange Zeichenkette mit Buchstaben, Doppelpunkten und Zahlen an.
Weiß jemand warum..?
Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

Wzut

Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

moonsorrox

Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

marvin78

Was gibt denn hostname -I auf der Konsole aus?

Das hört sich wirklich an, wie eine IPv6 Adresse.

moonsorrox

Zitat von: marvin78 am 17 Februar 2016, 11:55:19
Was gibt denn hostname -I auf der Konsole aus?

Das hört sich wirklich an, wie eine IPv6 Adresse.

das ergibt einen Fehler "Unknown command hostname, try help"

Ich nehme diese Anzeige jetzt erst mal aus dem RSS heraus, weil es überdeckt mir die gesamte Zeile...!
Ich weiß jetzt auch nicht, wieviel Tage dies schon so ist, es muss irgendwann die letzten Tage mit einem Update passiert sein, da es ja immer funktioniert hatte. Aber so wichtig ist diese Anzeige jetzt auch nicht, denn sie zeigt mir nur die IP des Fhem Servers an.

Ich hänge mal den Screenshot an, damit ihr seht das es sich nicht um eine IPv6 Adresse handelt. Die angezeigte IP stand immer unter den angezeigten Tagen von Intel -NUC also in dem Fall unter "8 days"  ;)
Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

peterk_de

Ja, und das was da quer dahinter steht, genau so sehen ipv6 adressen aus ;-)
FHEM auf Ubuntu-VM / 2xNUC Proxmox Cluster
UI: HomeKit, TabletUI, Grafana
IOdevs: 2xHueBridge, RaspiMatic-CCU, CUL868, 2xHarmonyHub, 6xRaspi-Roomnode mit CO2, VOC und lepresenced
Devices: 107xHomematic(IP), 96xPhilips Hue, 17xTECHEM, 12xBTLE, 8xSONOS, 2xHomeConnect, 1xShelly 3em, 1xNanoleaf ...

moonsorrox

Zitat von: peterk_de am 17 Februar 2016, 12:16:00
Ja, und das was da quer dahinter steht, genau so sehen ipv6 adressen aus ;-)

ja, ich weiß wie IPv6 Adressen aussehen  ;)
das hat doch bisher mit meiner Fhem Server IP geklappt es sei denn in Perl hat sich etwas verändert, was ich allerdings nicht glaube

Das ist jetzt eher OT
Wenn du hier schaust in Wikipedia gibt es aber kaum 6er Adressen die einen doppelten Doppelpunkt haben und schon gar nicht steht am Ende "bad2"

Aber wie gesagt es hat ja bis vor 2-3 Tagen alles funktioniert, evtl. muss der Eintrag in der 99_myUtils geändert werden, denn was ja sein könnte ist das dieser Perl Begriff seit neuesten tatsächlich eine IPv6 anzeigen möchte und da ich diese nicht habe macht er am Ende ein "bad2" dahinter...
Ist ja alles möglich..
Vllt. sagt hier nochmal jemand der sich mit Perl besser auskennt etwas dazu, wobei ich schon gesucht habe..! Bin aber bisher nicht fündig geworden und wie schon geschrieben lasse ich es zur Not raus, ich kenne ja die IP  ;)
Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

peterk_de

#7
doch, der :: ist in der norm (auslassungszeichen fü 0000-Blöcke) und bad2 ein absolut valider hex-block ... also das sind schon komplette ipv6-adressen, ohne irgendwas hintendran gehangenes. und so wie es aussieht, gleich mehrere (was auch völlig normal ist, also dass ein interface mehrere davon bekommen kann - z.b. stichwort privacy extensions)

warum das sich aber jetzt bei dir geändert hat kann ich dir nicht sagen - vermutlich hat es aber mit einem update des betriebssystems zu tun und nicht mit FHEM.
FHEM auf Ubuntu-VM / 2xNUC Proxmox Cluster
UI: HomeKit, TabletUI, Grafana
IOdevs: 2xHueBridge, RaspiMatic-CCU, CUL868, 2xHarmonyHub, 6xRaspi-Roomnode mit CO2, VOC und lepresenced
Devices: 107xHomematic(IP), 96xPhilips Hue, 17xTECHEM, 12xBTLE, 8xSONOS, 2xHomeConnect, 1xShelly 3em, 1xNanoleaf ...

Puschel74

Ja es bietet sich durchaus an zu wissen wann man welches update gemacht hat.
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

moonsorrox

Zitat von: Puschel74 am 17 Februar 2016, 14:09:50
Ja es bietet sich durchaus an zu wissen wann man welches update gemacht hat.

da hast du Recht, es war bei mir am Montag den 15.02.2016, aber da ich diese RSS Seite nicht täglich sondern eher wöchentlich (oder noch weniger) anschaue weiß ich also nicht welches Update es war.
Ich nutze ein Ubuntu und halte es eigentlich recht ordentlich auf dem aktuellen Stand, soll heißen ich habe eine Abfrage über Sysmon von Alexander in meinem Fhem und sehe sofort wann wieder aktuelle Pakete da sind, grad sind es wieder 7 Stk.
Dann gehe ich mit putty los und update  ;) :D

Wo genau ich was in Ubuntu sehen kann weiß ich leider nicht.. :-\
Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

marvin78

#10
In der Konsole (putty ...) gibt hostname -I (nicht anderes ist dein Aufruf - ein Linux Kommando. Das hat mit Perl wenig zu tun) immer alle IPs zurück. Diese sind mit Leerzeichen getrennt. Normalerweise steht die IPv4 Adresse am Anfang. Willst du nur diese aus dem Ausdruck heraus holen, musst du das mit split "ausschneiden" (oder eben ur das x. Element des Arrays zurück geben). Wichtig ist, dass du probierst, was hostname -I auf deiner Konsole zurück gibt und danach deine sub aufbaust. Man muss eben wissen, was der Code macht. Das in deinem Bild ist natürlich nicht nur eine einzelne IPv6 Adresse aber eben der komplette Ausdruck, der durch hostename -I zurück gegeben wird.

dev0

Alternativ zum perl split könnte man auch awk im Systemaufruf verwenden:

hostname -I |awk '{print $x}'

x = durch spaces getrennte Position in der Ausgabezeile. Siehe man awk.

moonsorrox

Oh ja vorhin war ein Fehler, aber jetzt sehe ich es...!
10.0.0.50 fd00::81ff:1f72:e01:8c08 fd00::d9a6:1a92:b3da:2e41 fd00::4d97:c1f4:1fc4:95c3 fd00::baae:edff:fe77:bad2


d.h. er hat wohl bis zu dieser Änderung immer nur die IPv4 angezeigt und seit neusten eben beide, dann ist mir das klar

Zitat von: dev0 am 17 Februar 2016, 18:46:14
Alternativ zum perl split könnte man auch awk im Systemaufruf verwenden:

hostname -I |awk '{print $x}'

x = durch spaces getrennte Position in der Ausgabezeile. Siehe man awk.

OK, dass funktioniert super wenn ich in putty eingebe
hostname -I |awk '{print $1}'

zeigt er mir nur die IPv4

Aber wie baue ich das in meine RSS Ausgabe ein die sieht ja momentan so aus
text x y  {trim(getip()) }

da müßte dann ja nur dieser Teil
|awk '{print $1}'
eingebaut werden, ich bin da leider nicht so bewandert.
Habe schon einige Versuche ausprobiert aber kommt nur Müll bei raus  ;) :-\
Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

marvin78

Nein. Du baust das in deine sub ein. Dort wird doch das Linux Kommando abgesetzt

Und dann kümmmerst du dich darum, dass du verstehst, was du da machst.


return ( "$ips[0]" );

funktioniert aber ggf. auch.

moonsorrox

Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM