function LocalIP : string;
type
TaPInAddr = array [0..10] of PInAddr;
PaPInAddr = ^TaPInAddr;
var
phe : PHostEnt;
pptr : PaPInAddr;
Buffer : array [0..63] of char;
I : Integer;
GInitData : TWSADATA;
begin
WSAStartup($101, GInitData);
Result := '';
GetHostName(Buffer, SizeOf(Buffer));
phe :=GetHostByName(buffer);
if phe = nil then Exit;
pptr := PaPInAddr(Phe^.h_addr_list);
I := 0;
while pptr^ <> nil do begin
result:=StrPas(inet_ntoa(pptr^^));
Inc(I);
end;
WSACleanup;
end;
Ip
Как получить IP компа в С++ Билдере?
Цитата:
Originally posted by Vamid
Как получить IP компа в С++ Билдере?
Как получить IP компа в С++ Билдере?
Какого компа?
Цитата:
Originally posted by 3D Bob
Какого компа?
Какого компа?
Для начала того, на котором прога запущена
Delfer, пасибо за подсказку, но теперь бы ещё всё в С++ билдер переформатить, а то я в Pascal полный профан, да и прога почти до конца написана в С++ Билдере, пару событий осталось обработать.
Цитата:
Originally posted by Vamid
Delfer, пасибо за подсказку, но теперь бы ещё всё в С++ билдер переформатить, а то я в Pascal полный профан, да и прога почти до конца написана в С++ Билдере, пару событий осталось обработать.
Delfer, пасибо за подсказку, но теперь бы ещё всё в С++ билдер переформатить, а то я в Pascal полный профан, да и прога почти до конца написана в С++ Билдере, пару событий осталось обработать.
Это пусть кто-то другой поможет тк я с С++ не шарю
Код:
include <winsock.h>
#include <stdio.h>
void main()
{
WSADATA wsaData;
WORD wVersionRequested = MAKEWORD(1, 0);
int err = WSAStartup(wVersionRequested, &wsaData);
if(!err)
{
char hn[1024];
struct hostent *adr;
if(gethostname((char*)&hn, 1024))
int err = WSAGetLastError();
adr = gethostbyname(hn);
if(adr)
{
char *LocalIp = new char[15];
sprintf(LocalIp,"%d.%d.%d.%d",
(unsigned char)adr->h_addr_list[0][0],
(unsigned char)adr->h_addr_list[0][1],
(unsigned char)adr->h_addr_list[0][2],
(unsigned char)adr->h_addr_list[0][3]);
printf("%s\n", LocalIp);
}
}
}
#include <stdio.h>
void main()
{
WSADATA wsaData;
WORD wVersionRequested = MAKEWORD(1, 0);
int err = WSAStartup(wVersionRequested, &wsaData);
if(!err)
{
char hn[1024];
struct hostent *adr;
if(gethostname((char*)&hn, 1024))
int err = WSAGetLastError();
adr = gethostbyname(hn);
if(adr)
{
char *LocalIp = new char[15];
sprintf(LocalIp,"%d.%d.%d.%d",
(unsigned char)adr->h_addr_list[0][0],
(unsigned char)adr->h_addr_list[0][1],
(unsigned char)adr->h_addr_list[0][2],
(unsigned char)adr->h_addr_list[0][3]);
printf("%s\n", LocalIp);
}
}
}
дает айпишник локального компа
думаю понятно, что если ипоставить в переменную hn "codenet.ru", то получим айпи любимого сайта :)