# IP von NIC (zu Router)



## wh4tup (20. Dez 2009)

hi,

ich versuche das Netzwerkinterface, über das der Zugang zum Internet hergestellt wird, zu ermitteln. Setup: PC->ROUTER->INTERNET. 
Habe Rechner mit mehreren (win vista...) interfaces :

lo:
net0:
net1:
ppp0:
eth0:
eth1:
ppp1:
net2:
eth2:
net3:
eth3:
net4:
eth4:
net5:
net6:
eth5:
net7:
eth6:
net8:
eth7:
net9:
net10:
net11:
eth8:
eth9:
eth10:
eth11:
net12:
net13:

wollte erst die Ausgabe diverser Befehle parsen (zB ipconfig/ifconfig, netstat, route) und mir daraus das Default gateway auslesen und daraus das richtige interface ableiten. allerdings sind die befehle locale abhängig und desweiteren kanns mehr als 1 default gateway geben. 

daher neuer Versuch mit tracert mit max. 1 hop. Jetz blockt mein D-link router scheinbar tracert (was ich nicht versteh weil PING funzt...). 


```
C:\Windows\system32>tracert www.google.com

Tracing route to www.l.google.com [74.125.87.103]
over a maximum of 30 hops:

  1     *        *        *     Request timed out.
  2     4 ms     3 ms     4 ms  172.16.100.205
```

Gibs ne andere Möglichkeit ?


----------



## Gast2 (20. Dez 2009)

wh4tup hat gesagt.:


> wollte erst die Ausgabe diverser Befehle parsen (zB ipconfig/ifconfig, netstat, route) und mir daraus das Default gateway auslesen und daraus das richtige interface ableiten. allerdings sind die befehle locale abhängig und desweiteren kanns mehr als 1 default gateway geben.



finde das Default-Gateway - dann hast Du das Gateway was fürs Internet zuständig ist ... alle anderen Gateway sind nur Route zu weiteren Netzen ... ich weis nicht welche Metric das Default-Gateway unter Windows hat - sollte aber (wie unter Linux) eine 0 haben

hand, mogel


----------



## wh4tup (20. Dez 2009)

machs jetz mit "route" unter windows und "netstat" unter linux. funktioniert zumindest sprachen unabhängig.

btw unter vista hat das default gw bei mir eine metric von 20.


----------



## Gast2 (20. Dez 2009)

wh4tup hat gesagt.:


> und "netstat" unter linux.


wieso nicht auch route?


----------



## HoaX (20. Dez 2009)

Wozu brauchst du das eigentlich? Ich habe hier z.B. mehrere Rechner die über mehrere Interfaces ins Internet gehen und je nach Service unterschieden wird über welches die Daten laufen. Am Sinnigsten ist es imo den Benutzer einstellen zu lassen welches Interface benutzt werden soll.


----------



## wh4tup (20. Dez 2009)

@mogel: geht auch, netstat -nr liefert im prinzip eh denselben output

@hoax: mag bei mehreren internet verbindungen sinn machen. in meinem fall will ich aber genau das vermeiden. denkst du ein DAU weiß mit welchem interface er ins internet connected? das soll das programm für ihn machen. es gibt in meinem fall auch nur einen "service".


----------



## Gast2 (20. Dez 2009)

wh4tup hat gesagt.:


> geht auch, netstat -nr liefert im prinzip eh denselben output


stimmt - wieder man gespart :]




> denkst du ein DAU weiß mit welchem interface er ins internet connected? das soll das programm für ihn machen. es gibt in meinem fall auch nur einen "service".


das sollte in der Tat den DAU nicht interessieren ... das sollte aber auch einen Programmierer nicht interessieren (dafür gibt es die Netzwerker) ... was willst Du genau bewerkstelligen

hand, mogel


----------



## wh4tup (21. Dez 2009)

ich bin eigentlich mehr der netzwerker als der coder. hab nenn sipclient geschrieben. erstens soll die applikation nur auf dem einen interface "gebinded" werden und zweitens brauch ich dieses später fürs RTP streaming.


----------



## HoaX (21. Dez 2009)

Als Idee fällt mir ein einfach z.B. zum SIP-Registrar zu verbinden und dann vom Socket mit getLocalAddress() die lokale Adresse zu holen, dann kannst du die vorhandenen Interfaces durchschauen zu welchem die Adresse gehört.


----------



## wh4tup (22. Dez 2009)

das funzt :toll: danke!


----------

