Jak odczytać lokalny adres IP komputera, gdy posiada on więcej kart sieciowych?

0

Dzień dobry,
Chciałbym odczytać poprawny adres lokalny IP komputera na którym uruchomiłem aplikację. Problem w tym, że odczytuje mi on adres IP przypisany do VirtualBox Host-Only Ethernet Adapter.
Korzystam z takiego kodu:

uses Winsock;

procedure TForm1.FormCreate(Sender: TObject);
var
  wVersionRequested:WORD;
  wsaData:TWSAData;
begin
  wVersionRequested:=MAKEWORD(1, 1);
  WSAStartup(wVersionRequested, wsaData);
end;

procedure TForm1.IPCheck2Click(Sender: TObject);
Var
  p:PHostEnt;
  s:array[0..128] of char;
  p2:pansichar;
begin
  GetHostName(@s, 128);
  p:=GetHostByName(@s);
  Memo1.Lines.Add(p^.h_Name);
  p2:=iNet_ntoa(PInAddr(p^.h_addr_list^)^);
  Memo1.Lines.Add(p2);
  IPCheck2.Caption:=p2;
end;

Poproszę o informację w jaki sposób odczytać właściwy fizyczny lokalny adres IP.
Na zakończenie dodam, dla utrudnienia dodam, że płyta główna ma wbudowane dwie karty sieciowe.

0

W sensie, że chcesz obejść wirtualizację? ;-)

0

Zgadza się, ale także, jak napisałem na końcu sytuacji, gdy komputer ma więcej fizycznie zamontowanych kart sieciowych. Jak mam na płycie głównej dwie karty sieciowe jedną Intel'a drugą Realtek'a. Karty muszą być w systemie jakoś ponumerowane, tylko gdzie to odczytać lub ustawić aby odczytywał np. adres IP karty sieciowej nr 1 lub 2 lub 3

0

https://stackoverflow.com/questions/18378630/get-information-about-the-installed-network-adapters

natomiast sam musisz zdecydować, który adres jest poprawny

1
pstmax napisał(a):

gdzie to odczytać lub ustawić aby odczytywał np. adres IP karty sieciowej nr 1 lub 2 lub 3

A skąd wiesz w ogóle która karta ci potrzebna? Mogą być różne konfiguracje...
Problem X-Y: do czego ci ten adres IP?

1 użytkowników online, w tym zalogowanych: 0, gości: 1