|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
25.07.2008, 11:31 | #1 |
Участник клуба
Регистрация: 28.03.2007
Сообщений: 1,814
|
IP адрес
Можно ли узнать ip адрес с помощью компонентов serversocket или clientsocket? Если да, то как?
|
25.07.2008, 15:40 | #2 |
Пользователь
Регистрация: 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 |
25.07.2008, 15:54 | #3 |
Участник клуба
Регистрация: 28.03.2007
Сообщений: 1,814
|
Я эти примеры тоже нашёл, но вопрос втом что можно ли определить IP c помощью компонентов ServerSocket или ClientSocket
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
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 |