PDA

View Full Version : [Rete] Acquisire il vero ip di un client


tomminno
29-09-2007, 10:31
Ho un problema nel reperire correttamente l'ip della macchina da quando ho installato VMWare. Per la macchina fisica l'ip è 192.168.0.5, quella virtuale risponde al 192.168.0.6.
Per le comunicazioni limitate allo stesso hardware cioè tra OS vero (XP) e virtualizzato (XP) ottengo che il client di una comunicazione ha sempre ip 192.168.218.1 che non è un ip esistente (questo accade sia che il client sia sulla macchina virtuale e il server su quella reale o viceversa).

Questo è quello che capita:

--Server ip:192.168.0.5 SendUDPBroadcast
--Client ip:192.168.0.6 recvfrom->campo from=192.168.218.1

e viceversa

--Server ip:192.168.0.6 SendUDPBroadcast
--Client ip:192.168.0.5 recvfrom->campo from=192.168.218.1

-------------------------------------------------------------

--Server ip:192.168.0.5 Listen
--Client ip:192.168.0.6 connect 192.168.0.5
--Server getpeername->192.168.218.1

e viceversa

--Server ip:192.168.0.6 Listen
--Client ip:192.168.0.5 connect 192.168.0.6
--Server getpeername->192.168.218.1


Per le comunicazioni con altri hardware capita spesso (ma non sempre) che la chiamata a getpeername sul socket aperto restituisca l'ip inesistente.

Le comunicazioni funzionano regolarmente. Il problema di base è che il client "riceve" l'ip del server utilizzando l'ip ottenuto da recvfrom e se questo è inesistente la comunicazione non può instaurarsi.
Da che può dipendere e come si può risolvere un problema simile?