Problem med IP broadcast i Windows

C, C++, Pascal, Assembly, Raspberry, Java, Matlab, Python, BASIC, SQL, PHP, etc.
Användarvisningsbild
vfr
EF Sponsor
Inlägg: 3515
Blev medlem: 31 mars 2005, 17:55:45
Ort: Kungsbacka

Problem med IP broadcast i Windows

Inlägg av vfr »

Jag försöker få till en broadcast på nätverket, det lokala subnätet eller så mycket som fungerar för ögonblicket.

Först har jag försökt att på egen hand få till det genom att använda Win32 sendto() med broadcast-option satt på sockeln. När jag inte fick något resultat så letade jag på nätet och hittade detta.

Jag har både försökt kompilera källkoden och att köra den färdiga exe-filen, men får inte ut något här heller. För att verifiera det så har jag wireshark som lyssnare på samma PC.

Jag kan köpa att jag gör något fel, t.o.m med det färdiga programmet, speciellt eftersom jag kompilerar under CPP Builder och inte Visual C. Eftersom det är Win32-API så borde det funka ändå, och när det inte ens funkar att köra den förkompilerade exe-filen så börjar jag ge upp.

Det visade sig att det fanns även ett förkompilerat mottagningsprogram till det exemplet och där får man upp det man broadcastar. Så det verkar ju funka ändå. Men varför visar inte wireshark något?

Om jag ändrar till en "vanlig" sändning och ingen broadcast, så visar loggen det alldeles utmärkt.
Muppis
Inlägg: 275
Blev medlem: 15 februari 2007, 10:26:28
Ort: Halmstad

Re: Problem med IP broadcast i Windows

Inlägg av Muppis »

Har du flera nätverkskort i datorn? Du kanske sänder broadcast-trafiken på fel nätverkskort?

Har du provat mottagningsprogrammet på en annan dator i nätverket?
Användarvisningsbild
vfr
EF Sponsor
Inlägg: 3515
Blev medlem: 31 mars 2005, 17:55:45
Ort: Kungsbacka

Re: Problem med IP broadcast i Windows

Inlägg av vfr »

Mycket bra frågor.

Ja, det finns iallafall diverse fiktiva näterkskort (typ Teamviewer, Virtualbox etc) plus fast och trådlöst ethernet. Nej, jag har inte testat mottagningsprogrammet på någon annan dator.

Men hur anger jag vilket nätverkskort det ska sändas iväg på? Jag trodde att man genom att använda broadcastadress 255.255.255.255 (INADDR_BROADCAST) fick ut det på alla lokala nät, alltså alla nätverkskort. Däremot inte på routade nät.
Muppis
Inlägg: 275
Blev medlem: 15 februari 2007, 10:26:28
Ort: Halmstad

Re: Problem med IP broadcast i Windows

Inlägg av Muppis »

Det låter som att du råkar ut för detta:

http://serverfault.com/questions/72112/ ... on-windows
Användarvisningsbild
vfr
EF Sponsor
Inlägg: 3515
Blev medlem: 31 mars 2005, 17:55:45
Ort: Kungsbacka

Re: Problem med IP broadcast i Windows

Inlägg av vfr »

Tack Muppis! Det låter ju faktiskt som att det skulle vara detta som ställer till det.

Det jag försöker åstadkomma är precis samma som TS förklarar i den tråden. Jag har enheter som adresseras på annat sätt, via kommunikationsadresser satta med en DIP-switch. Min tanke var då att broadcasta ut en fråga om vem som har adress XXX och lagra den. Sedan använda den IP-adressen i fortsatta kommunikationer.

Men egentligen finns det ingen lösning på det, som jag förstår. Inte i den tråden iallafall....

Någon mer som har tankar kring detta?
Muppis
Inlägg: 275
Blev medlem: 15 februari 2007, 10:26:28
Ort: Halmstad

Re: Problem med IP broadcast i Windows

Inlägg av Muppis »

Kan inte enheterna lyssna på tex 192.168.0.255? Då kan du bara ignorera de sista dip-switcharna för att räkna ut broadcast-adressen. Det blir också enkelt att felsöka med simpla verktyg som ping, förutsatt att du implementerar ICMP i enheten.
Mr Andersson
Inlägg: 1397
Blev medlem: 29 januari 2011, 21:06:30
Ort: Lapplandet

Re: Problem med IP broadcast i Windows

Inlägg av Mr Andersson »

En möjlig lösning är att enumerera alla nätverksinterface (t.ex. med GetAdaptersAddresses) och sända en broadcast på alla relevanta adresser.
Användarvisningsbild
vfr
EF Sponsor
Inlägg: 3515
Blev medlem: 31 mars 2005, 17:55:45
Ort: Kungsbacka

Re: Problem med IP broadcast i Windows

Inlägg av vfr »

Den lösningen med att enumrera alla interfacen är jag också inne på. Jag får försöka en sådan variant. Men jag begriper inte varför man ska behöva ta till sådana saker för att göra något som borde vara självklart.
Skriv svar