Seite 1 von 1

lokale ip

Verfasst: 14. Oktober 2009 02:24
von Irods
Hi ich suche schon den ganzen Abend eine Möglichkeit meine locale ip mit qt zu ermitteln.
Aber irgendwie finde ich überhaupt nichts brauchbares.
Plz help :D
Gruss Irods

Verfasst: 14. Oktober 2009 07:44
von macman
Computer bekommen keine IP, Netzwerkinterfaces bekommen eine. Und wenn man mehrere Netzwerkkarten hat und noch dazu eine VM, dann hat man sogar einige IPs. Du musst dir also eine Liste deiner Netzwerkinterfaces holen und die kannst Du dann fragen.
Hiermit bekomme ich 5 IPs angezeigt:

Code: Alles auswählen

	QList<QHostAddress> allIPs = QNetworkInterface::allAddresses();
	QString ip;
	foreach (QHostAddress ha, allIPs)
		ip = ha.toString();

Verfasst: 14. Oktober 2009 09:06
von upsala
Er sucht ja nur sein lokale IP. Und die ist in der Regel: 127.0.0.1

Verfasst: 14. Oktober 2009 11:35
von macman
127.0.0.1 ist das Loopback-Device und als solches auch nur eine virtuelle Netzwerkkarte. Die reale Netzwerkkarte hat immer eine IP, entweder eine manuell eingestellte, eine per DHCP zugewiesene, oder eine selbst zugewiesene.

Mit obigen Code bekommt man also immer 2 IPs zurück.

Im Prinzip hast Du Recht, für lokale Connections reicht 127.0.0.1, aber das wird er nicht gesucht haben :)

thx

Verfasst: 14. Oktober 2009 13:53
von Irods
also danke für die schnellen antworten und 127.0.0.1 hab ich nicht gesucht xD aber
die Andere scheint ganz brauchbar zu sein das probiere jetzt erst ma aus

Verfasst: 14. Oktober 2009 17:11
von Irods
also der ganze kram funzt jetzt wunderbar aber irrgent wie find ich keine funktion mit der
man herrausfinden kann ob eine addresse ipv4 oda ipv6 ist außer diese hier:
http://qt.nokia.com/doc/4.0/qhostaddres ... Pv4Address
nur das problem ist diese funktioniert nur unter qt3 und ich nutze qt4
kennt ihr vll ne andere funktion die unter qt4 funzt?
oder eine möglichkeit eine qt3 funktion unter qt4 zu benutzen

schon ma thx
gruss irods

Verfasst: 14. Oktober 2009 19:51
von upsala
Also ich finde die Doku zu QHostAddress::isIPv4Address() recht interessant...

Verfasst: 15. Oktober 2009 08:38
von Irods
ich hab mir jetzt ne eigene funktion geschrieben die untersucht ob ein "." in der adresse vorkommt
da ja ipv4 adressen mit einem "." getrent werden und ipv6 mit einem ":"

Verfasst: 15. Oktober 2009 09:04
von upsala
Da sag ich jetzt mal nichts dazu...

Verfasst: 15. Oktober 2009 11:00
von arj
Irods hat geschrieben:ich hab mir jetzt ne eigene funktion geschrieben
Ich würde mir den Beitrag von upsala nochmal anschauen. Das gibt es nämlich schon...