Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.07.2008, 11:31   #1
SERG1980
Участник клуба
 
Аватар для SERG1980
 
Регистрация: 28.03.2007
Сообщений: 1,814
По умолчанию IP адрес

Можно ли узнать ip адрес с помощью компонентов serversocket или clientsocket? Если да, то как?
SERG1980 вне форума Ответить с цитированием
Старый 25.07.2008, 15:40   #2
rubi
Пользователь
 
Регистрация: 01.09.2007
Сообщений: 35
По умолчанию

Вопросы работы с сокетами регулярно возникают в инете. Поэтому покопавшись всего 3 минуты нашел тебе два примера:

локальный IP адрес:
uses Winsock;
...

procedure TForm1.FormCreate(Sender: TObject);
var
wVerReq: WORD;
wsaData: TWSAData;
i: pchar;
h: PHostEnt;
c: array[0..128] of char;
begin
wVerReq := MAKEWORD(1, 1);
WSAStartup(wVerReq, wsaData);
{Получаем хост (имя) компа}
GetHostName(@c, 128);
h := GetHostByName(@c);
Host.Caption := h^.h_Name; //Host отображает хост(имя) компьютера
{Достаем IP}
i := iNet_ntoa(PInAddr(h^.h_addr_list^)^ );
IPaddr.Caption := i; //Теперь IPaddr отображает IP-адрес
WSACleanup;
end;
это с http://www.sql.ru/forum/actualthread...=40&tid=347485

{ если не задавать имя хоста, то будет возвращен ip-адрес "своего" компа }
procedure GetIPListByHostName(AddrList: TStrings; const AHostName: String = '');
type
TAddr_List = array[0..0] of PInAddr;
PAddr_List = ^TAddr_List;
var
pHE: PHostEnt;
P: PAddr_List;
Buf: PChar;
wsaData: TWSAData;
i: Integer;
begin
AddrList.Clear;
{ This function must be the first Windows Sockets function called by
an application or DLL. It allows an application or DLL to specify
the version of Windows Sockets required and to retrieve details of
the specific Windows Sockets implementation.
Win32 DevRef }
WSAStartup(wVersionRequested, wsaData);
GetMem(Buf, MAX_PATH);
try
pHE := GetHostByName(StrPCopy(Buf, AHostName));
if Assigned(pHE) then begin
P := PAddr_List(pHE^.h_addr_list);
i := 0;
while Assigned(P^[i]) do begin
AddrList.Add(inet_ntoa(P^[i]^));
Inc(i);
end;
{ When it has finished using the services of the Windows Sockets DLL,
the application or DLL must call WSACleanup in order to allow the
Windows Sockets DLL to free any resources for the application.
Win32 DevRef }
end
else AddrList.Add('None'); // returns null
finally
FreeMem(Buf);
WSACleanup;
end;
end;

это с http://icoder.ru/pages/new18s89o508041.html
rubi вне форума Ответить с цитированием
Старый 25.07.2008, 15:54   #3
SERG1980
Участник клуба
 
Аватар для SERG1980
 
Регистрация: 28.03.2007
Сообщений: 1,814
По умолчанию

Я эти примеры тоже нашёл, но вопрос втом что можно ли определить IP c помощью компонентов ServerSocket или ClientSocket
SERG1980 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
mac адрес AvG Компьютерное железо 5 23.07.2008 10:52
Логический адрес InitInstance Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 24.03.2008 10:33
Ip адрес delphin100 Win Api 4 08.01.2008 21:55
IP адрес delphin100 Общие вопросы Delphi 8 12.12.2007 13:18
как узнать ip адрес зная mac адрес Roman Работа с сетью в Delphi 9 25.06.2007 12:39