Avatar billede myplacedk Nybegynder
25. november 2003 - 20:28 Der er 12 kommentarer og
1 løsning

Finde broadcast adressen

Mit java-program skal sende noget broadcast trafik ud på LANet. Men hvordan finder jeg broadcast-adressen?
Den eneste IP-adresse jeg har kunnet få den til at finde, er 127.0.0.1, og den er der ikke meget ved. :)
Avatar billede arne_v Ekspert
25. november 2003 - 20:34 #1
Du finder din IP adresse og din subnet maske og sætter resten af bittene.

IP adresse 111.222.222.111
subnet maske 255.255.255.0
broadcast adresse 111.222.222.255
Avatar billede arne_v Ekspert
25. november 2003 - 20:44 #2
InetAddress.getLocalHost().getHostAddress() finder egen IP adresse.
Avatar billede myplacedk Nybegynder
25. november 2003 - 20:53 #3
Nope, jeg får bare 127.0.0.1.
Avatar billede arne_v Ekspert
25. november 2003 - 20:56 #4
Hvilket operativ system ?

Virker IP ?
Avatar billede myplacedk Nybegynder
25. november 2003 - 21:02 #5
Netværket virker fint, og mit program skulle gerne være platformsuafhængig. Det er en linux-maskine jeg tester på.
Avatar billede arne_v Ekspert
25. november 2003 - 21:14 #6
Hm.

Jeg får også loopback adressen på min Linux box, men det virker
på min Windows box.
Avatar billede arne_v Ekspert
25. november 2003 - 21:23 #7
Hvis du bruger Java 1.4.x kan du så ikke lige prøve at køre den her
kode:

import java.net.*;
import java.util.*;

public class LocalhostExt {
    public static void main(String[] args) throws Exception {
        Enumeration e = NetworkInterface.getNetworkInterfaces();
        while(e.hasMoreElements()) {
            NetworkInterface ni = (NetworkInterface)e.nextElement();
            System.out.println("Net interface: " + ni.getName());
            Enumeration e2 = ni.getInetAddresses();
            while (e2.hasMoreElements()){
              InetAddress ip = (InetAddress)e2.nextElement();
              System.out.println("IP address: " + ip.getHostAddress());
            }
        }
    }
}
Avatar billede arne_v Ekspert
25. november 2003 - 21:28 #8
Hvis du bruger den teknik til at snuppe IP adressen hvor navnet
er "eth0", så tror jeg at du har den.
Avatar billede myplacedk Nybegynder
25. november 2003 - 21:42 #9
Jeg får en komplet og korrekt liste over alle mine netværks interfaces. Herligt. :)

Men hvordan får jeg så fat i broadcast adressen? Jeg fandt noget som tyder på at det ikke kan lade sig gøre direkte. Men hvad kan man så gøre?
Måske jeg skal kigge på multicast, jeg ved ikke præcist hvordan det fungerer...
Avatar billede arne_v Ekspert
25. november 2003 - 21:49 #10
For multicast se MulticastSocket klassen.
Avatar billede arne_v Ekspert
25. november 2003 - 21:50 #11
For at kunne beregne broadcast adressen skal du have både IP adressen
og netmask.

Du har ikke mulighed for at assume netmask = 255.255.255.0 ?
Avatar billede myplacedk Nybegynder
25. november 2003 - 23:52 #12
> Du har ikke mulighed for at assume netmask = 255.255.255.0 ?
Nope.

Jeg tror jeg kigger på om multicast er løsningen. Tak for hjælpen, læg lige et svar. :)
Avatar billede arne_v Ekspert
25. november 2003 - 23:53 #13
ok
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester