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

Odpowiedz Nowy wątek
2018-09-07 21:16
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.


Piotr Strzemkowski
edytowany 1x, ostatnio: furious programming, 2018-09-09 01:47
A gdyby wziąć output z ipconfig lub ipconfig /all i zparsować? :P ale to raczej tak w ostateczności - WeiXiao 2018-09-07 21:18
Z punktu widzenia aplikacji to odczytuje Ci prawidłowy adres IP. Wydaje mi się, że to byłby poważny błąd, gdyby maszyna wirtualna mogła "zajrzeć" do hosta i sprawdzić jakie ma karty sieciowe. Możesz ew. skonfigurować interfejs sieciowy maszyny wirtualnej na bridged i jeśli masz adresy MAC kart sieciowych hosta, spróbować po ARP znaleźć adresy IP, ale chyba nie o to Ci chodzi. - arczinosek 2018-09-09 22:36

Pozostało 580 znaków

2018-09-07 21:39
0

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


Pozostało 580 znaków

2018-09-07 21:46
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


Piotr Strzemkowski

Pozostało 580 znaków

2018-09-07 22:11
0

https://stackoverflow.com/que[...]he-installed-network-adapters

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


Chcesz pomocy - pokaż kod - abrakadabra źle działa z techniką.

Pozostało 580 znaków

2018-09-07 22:14
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?

edytowany 1x, ostatnio: Azarien, 2018-09-07 22:15

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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