When I use InetAdress.getAllByName(String host) on my workstation,I get two IP addresses. One is for the LAN connection and the other isfor the dialup connection. I need to get the dial up connection’s IPaddress because the LAN’s IP address is only known by the localnetwork. Is there a way to determine which IP is which? Are theyordered or something?
Unfortunately, the order in which the IP addresses are returned isplatform dependent. You cannot rely on the primary network interfacebeing listed first all of the time. However, when writing networkclient or server applications, if you do not bind to a specificinterface your application will work across both interfaces. If youhave a client application that is already connected, you can alwaysdetermine the interface it is on by calling Socket.getLocalAddress().But if you really need to know which IP address corresponds to whichinterface, you can always write some native code or use Runtime.exec()to execute a local utility such as ifconfig (Unix) and parse theoutput.