{Visual C++} Odczyt IP

0

Witajcie,

zaczynam swoją przygodę z Visualem. Mam pytanie, jak mogę w MessageBoxie wyświetlić swój lokalny adres IP ? Głównie, chodzi o to jak go pobrać do zmiennej, muszę użyć jakiejś kontrolki ?
Wersja visuala to Visual c++ 2010 Express.

0

Tak, musisz użyć kontrolki rozum.
http://msdn.microsoft.com/en-us/library/s128tyf6

0

Musisz skorzystać z klasy NetworkInterface, reprezentuje ona interfejs sieciowy zainstalowany w komputerze (to co widać na liście "Połączenia sieciowe").
NetworkInterface::GetAllNetworkInterfaces zwraca listę wszystkich interfejsów.

0

Masz tu kod w Asemblerze, przepisz sobie na C++ :)

.386
.model	flat, stdcall
option	casemap:none

include		windows.inc
include		kernel32.inc
include		user32.inc
include		ws2_32.inc

includelib	user32.lib
includelib	kernel32.lib
includelib	ws2_32.lib

.data
wsaData WSADATA <>;
P hostent <>;
HostName db 128 dup(0);
szCaption db "Twój adres IP",0

.data?

.code
start:
	; Inicjacja Winsock
	invoke WSAStartup, 0101h, addr wsaData
	; Pobierz nazwę hosta
	invoke gethostname, HostName, 128
	; Pobierz strukturę hostent z nazwy hosta
	invoke gethostbyname, addr HostName
	mov    ebx, eax
	; EBX aktualnie wskazuje strukturę hostent
	assume ebx: ptr hostent
    mov    eax, [ebx].h_list
    assume ebx: nothing
    ; EBX aktualnie wskazuje na listę adresów IP
    mov    ebx, eax
    
    mov    eax, [ebx]
    ; Pobierz adres IP z wskaźnika na adres IP
    mov    eax, [eax]
    ; Zamień adres IP na tekst
    invoke inet_ntoa, eax
	invoke MessageBox, 0, eax, addr szCaption, 0
	invoke ExitProcess,NULL
end start

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