Kommunicera på LAN

Elektronik- och mekanikrelaterad mjukvara/litteratur. (T.ex schema-CAD, simulering, böcker, manualer mm. OS-problem hör inte hit!)
Användarvisningsbild
Icecap
Inlägg: 26632
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Kommunicera på LAN

Inlägg av Icecap »

Jag har ett program som loggar min pelletsbrännare, inget konstigt. Om jag kollar på logg-filen kan jag se senaste avläsningen av temperaturer.
Exempel:

Kod: Markera allt

                                      Pann-         Int. Bränn- Ute- Pellets
Datum               Tid          tmp.   kW  tmp. kopp tmp.  åtg.
2012-11-20	13:40	47	0,00	17	17	6	0
2012-11-20	13:45	49	0,00	16	17	5	0
2012-11-20	13:50	49	0,00	16	16	6	0
2012-11-20	13:55	50	0,00	16	17	6	0
2012-11-20	14:00	50	0,00	16	17	5	0
2012-11-20	14:05	51	0,00	17	18	5	0
2012-11-20	14:10	52	0,00	17	17	5	0
2012-11-20	14:15	53	0,00	16	18	5	0
2012-11-20	14:20	53	0,00	17	18	6	0
2012-11-20	14:25	55	0,00	18	18	5	0
2012-11-20	14:30	56	0,00	17	17	6	0
2012-11-20	14:35	57	0,00	17	18	5	0
2012-11-20	14:40	59	0,00	17	18	5	0
2012-11-20	14:45	59	0,00	17	18	5	0
2012-11-20	14:50	62	0,00	18	18	5	0
2012-11-20	14:55	64	0,00	18	18	5	0
2012-11-20	15:00	66	0,00	18	19	5	0
2012-11-20	15:05	68	0,00	18	19	5	0
2012-11-20	15:10	70	0,00	18	19	6	0
2012-11-20	15:15	72	0,00	18	20	6	0
2012-11-20	15:20	73	0,00	19	19	6	0
2012-11-20	15:25	72	0,00	18	19	6	0
2012-11-20	15:30	73	0,00	18	19	6	0
2012-11-20	15:35	73	0,00	18	20	5	0
Jag skulle dock gärna kunde starta samma program på en annan dator som är kopplat till samma LAN och då ha dom att prata med varandra.

Grundprogrammet kan enkelt avgöra om det har kontakt med en brännare eller inte, den funktion finns redan. Jag har testat att göra en programsnudd som får eget IP-adress (fungerar bra) och då får jag två adresser fram - vilket tydligen skulle vara OK. Datorns LAN-namn får jag fram också.

Min tanke (är ju mer µC-inriktat, inte van med LAN på det vis) är att ta lägsta värde i IP-adressen, utesluta det egna värde samt de systemadresser som finns och sedan skicka en fråga till en och samma port men räkna upp lägsta värdet i LAN-adressen till jag får svar vilket då skapar kontakt mellan de två datorer.

Men jag kan inte låta bli att undra:
* Finns det ett sätt att få fram en lista över vilka datorer som är anslutna samt deras IP-nummer. Då kan man ju göra det hela lite enklare vid att bara fråga de existerande.

När jag väl har löst det hela är det ju en bra grund till att skapa andra program som kommunicerar med varandra och på ett senare tidpunkt även med omvärlden.
sodjan
EF Sponsor
Inlägg: 43247
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Kommunicera på LAN

Inlägg av sodjan »

> * Finns det ett sätt att få fram en lista över vilka datorer som är anslutna samt deras IP-nummer.

Nej. Inte utan att polla möjliga adresser (inom subnätet) eller att ansluta
maskiner registrerar sig (t.ex genom DHCP) mot en gemensam server.
Användarvisningsbild
psynoise
EF Sponsor
Inlägg: 7226
Blev medlem: 26 juni 2003, 19:23:36
Ort: Landvetter

Re: Kommunicera på LAN

Inlägg av psynoise »

Klart det finns ett sätt att få fram en lista med IP-adresser, annars hade aldrig en switch fungerat. Dock fungerar detta på en väldigt låg nivå. Om det är länkskiktet (ethernet) eller ännu lägre kommer jag tyvärr inte på. Sedan finns det applikationer som just använder applikationsskiktet för att visa vilka tjänster som finns att tillgå i ett nätverk.
Användarvisningsbild
tecno
Inlägg: 27248
Blev medlem: 6 september 2004, 17:34:45
Skype: tecnobs
Ort: Sparreholm, Södermanland N 59° 4.134', E 16° 49.743'
Kontakt:

Re: Kommunicera på LAN

Inlägg av tecno »

CMD fönster och arp -a ger ju adresserna på burkarna men att få ut dessa som ?.txt vet jag inte hur man gör.
svanted
Inlägg: 5276
Blev medlem: 30 augusti 2010, 21:20:38
Ort: Umeå

Re: Kommunicera på LAN

Inlägg av svanted »

på internet är det oftast en konfigurerbar parameter, vilka ipnummer som ska prata med varandra, på mindre lan
kan man väl polla efter respons men på wan blir det en oöverstiglig uppgift.
Användarvisningsbild
Icecap
Inlägg: 26632
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Re: Kommunicera på LAN

Inlägg av Icecap »

sodjan: som jag trodde alltså. Tack.

psynoise: jag ska testa att hålla mig till "Q&D", uppkopplingstiden är inte av större vikt. (Q&D = Quick & Dirty)

tecno: jovars... kanske ett sätt. Vill dock gärna att jag bara startar programmet och sedan fixar det resten själv, jag är lite allergisk mot att skulle använda andra program för att hämta data till ett program. Men vet ju aldrig om någon mupp har pajat något...

svanted: jupp, det blir nog till att polla.
sodjan
EF Sponsor
Inlägg: 43247
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Kommunicera på LAN

Inlägg av sodjan »

> Klart det finns ett sätt att få fram en lista med IP-adresser, annars hade aldrig en switch fungerat.

Nej!
Switchen vet inte vilka IP adresser som finns *innan* de har "hört av sig" första gången.
En switch kommer (när den är nystartad) att fungera som en hub tills den har byggt
upp sina interna IP => MAC => port tabeller.

> CMD fönster och arp -a ger ju adresserna på burkarna

Enbart på de "burkar" som man redan har varit i kontakt med!
ARP vet inget om de burkar som man *INTE* redan har snackat med.
D.v.s det problem som Icecap talade om.

Nej, det finns inget sätt att veta vilka adresser som existerar på ett LAN
utan att testa/polla eller fråga en annan burk som redan "vet".
Användarvisningsbild
PHermansson
EF Sponsor
Inlägg: 4340
Blev medlem: 22 december 2004, 00:46:38
Ort: Särestad Grästorp
Kontakt:

Re: Kommunicera på LAN

Inlägg av PHermansson »

Menar du typ Nmap?
nmap -v -sn 192.168.1.0/24|grep up
Host is up (0.0026s latency).
Host is up (0.0022s latency).
Host is up (0.00041s latency).
Host is up (0.0020s latency).
Host is up (0.071s latency).
Host is up (0.00051s latency).
Host is up (0.013s latency).
Host is up (0.014s latency).
Host is up (0.000059s latency).
Host is up (0.0089s latency).
Host is up (0.0027s latency).
Host is up (0.0066s latency).
Nmap done: 256 IP addresses (12 hosts up) scanned in 32.29 seconds
Användarvisningsbild
tecno
Inlägg: 27248
Blev medlem: 6 september 2004, 17:34:45
Skype: tecnobs
Ort: Sparreholm, Södermanland N 59° 4.134', E 16° 49.743'
Kontakt:

Re: Kommunicera på LAN

Inlägg av tecno »

:humm: Tar för givet att man har fasta adresser i ett sådant läge som Icecap har och då är ju adresserna 'kända'.
sodjan
EF Sponsor
Inlägg: 43247
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Kommunicera på LAN

Inlägg av sodjan »

> Tar för givet att man har fasta adresser i ett sådant läge som Icecap har och då är ju adresserna 'kända'.

Ja, om man redan i förväg har satt *fasta* adresser på allt så
finns ju inte problemet som Icecap frågar om över huvudtaget.
Men varför hade Icecap frågat alls i så fall ?

Sen finns det verktyg som t.ex nmap som scannar nätet.

Nu så tror jag (tolkade i alla fall) att att Icecap hade mindre
prylar (uP baserade ?) som skulle snacka med varandra och
då har man sannolikt inte tillgång till nmap eller liknande.
johano
Inlägg: 1943
Blev medlem: 22 januari 2008, 10:07:45
Ort: Stockholm

Re: Kommunicera på LAN

Inlägg av johano »

Kan du inte köra med ett broadcast-anrop och låta de "intresserade" enheterna svara på detta
med sin egen ip-adress? Lite som dhcp/bootp..

Iofs. blir du då begränsad till att enheterna måste sitta på samma subnät (om inte router/switch konfas
att vidarebefordra broadcasts), men det kanske inte är så stort problem i hemmanätverk..

/johan
Användarvisningsbild
psynoise
EF Sponsor
Inlägg: 7226
Blev medlem: 26 juni 2003, 19:23:36
Ort: Landvetter

Re: Kommunicera på LAN

Inlägg av psynoise »

sodjan skrev:> Klart det finns ett sätt att få fram en lista med IP-adresser, annars hade aldrig en switch fungerat.

Nej!
Switchen vet inte vilka IP adresser som finns *innan* de har "hört av sig" första gången.
En switch kommer (när den är nystartad) att fungera som en hub tills den har byggt
upp sina interna IP => MAC => port tabeller.
Varje nätverksgränssnitt inklusive en switch har en ARP-tabell. Denna tabell listar vilka IP- och MAC-adresser som hör ihop. Time to live för varje par brukar endast vara i runda slängar 20 min. Därför måste tabellen uppdateras ofta när en särskild IP-adress efterfrågas som inte finns med. Detta gör ARP genom en brodcast-frame (länkskiktet) kallad ARP query packet.
danielr112
Inlägg: 8092
Blev medlem: 18 januari 2009, 00:48:24
Ort: Alvesta, Småland

Re: Kommunicera på LAN

Inlägg av danielr112 »

nmap -sP 192.168.1.0/24

Kör detta i linux eller liknande. Bara byt ut nätet så kommer den lista alla burkar på nätet lite snabt.
danwi
Inlägg: 385
Blev medlem: 16 oktober 2008, 17:00:59
Ort: Linköping

Re: Kommunicera på LAN

Inlägg av danwi »

psynoise skrev:Varje nätverksgränssnitt inklusive en switch har en ARP-tabell. Denna tabell listar vilka IP- och MAC-adresser som hör ihop. Time to live för varje par brukar endast vara i runda slängar 20 min. Därför måste tabellen uppdateras ofta när en särskild IP-adress efterfrågas som inte finns med. Detta gör ARP genom en brodcast-frame (länkskiktet) kallad ARP query packet.
Nej igen!

En switch för Ethernet (som ju "bor på" protokollager två enligt ISO-OSI-modellen) har inte en susning om IP eller något annat protokoll på högre lager utan bryr sig bara om MAC-adresser. Varje gång ett paket kommer in på en port i switchen kollar den på avsändarens MAC-adress och uppdaterar sin interna mappningstabell med att den adressen finns på den port där paketet kom in. Mappningen mellan IP-adresser och MAC-adresser får göras helt och hållet av ändutrustningen mha ARP (adress resolution protocol).

En router jobbar däremot på protokollager tre, d.v.s. IP, och måste därför själv hålla koll på vilken port som går till vilket IP-nummer. En router behöver däremot inte switcha på lägre nivåer utan fungerar som en ändpunkt för Ethernet.

(Beskrivningen ovan baseras på den vanliga kombinationen Ethernet och IP, men principen är giltig även om det skulle vara andra protokoll som används. Ett underliggande protokoll ska i princip aldrig behöva veta något om högre protokollager!)
sodjan
EF Sponsor
Inlägg: 43247
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Kommunicera på LAN

Inlägg av sodjan »

OK. Men själva *poängen* (det som Icecap efterfrågade) är att det finns inget
sätt att veta vilka andra IP adresser det finns utan att fråga/testa/polla.
Eller genom att ha en egen tabell (hosts).
Eller genom att används DNS.

Och det viktiga med en switch är att den inte heller *från början* vet
vilka andra maskiner (OK, med MAC adresser, men det är samma logik)
som finns innan det har "lärt sig".

Så helt oavsett hur en switch fungerar så är svaret på Icecaps fråga "nej".

> ...men principen är giltig även om det skulle vara andra protokoll som används.

Förutsatt att det är route-bara protokoll... :-)
Skriv svar