|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
[Rete] Acquisire il vero ip di un client
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? |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 02:02.



















