![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() В процессе работы программа шлёт GET и POST запросы на мой сайт, использую idHTTP.
допустим IdHTTP.Get('http://domen.ru/script.php?info=123'); IP адрес у domen.ru постоянный, и я его знаю. Как убедиться что данные отправляются именно на мой сайт? Т.е. как убедиться, что domen.ru расположен по адресу допустим 155.155.155.155. Т.е. как получить IP адрес сайта? ![]() А то ведь в винде можно добавить в файл hosts строчку 127.0.0.1 domen.ru и данные уйдут на локалхост, а программа не получит ответа. А если на локалхосте поднять вебсервер на том же Денвере с адресом domen.ru то и подменять ответы можно. ![]() Последний раз редактировалось MrDiG, 07.11.2010 в 22:37. |
#2
|
|||
|
|||
![]() Нашёл вариант на сокетах, но хотелось бы версию для idHTTP.
Да и не всё я в нижеприведённом коде понимаю. Код:
function GetIPFromHost(const HostName: string): string; type TaPInAddr = array[0..10] of PInAddr; PaPInAddr = ^TaPInAddr; var phe: PHostEnt; pptr: PaPInAddr; i: Integer; GInitData: TWSAData; begin WSAStartup($101, GInitData); Result := ''; phe := GetHostByName(PChar(HostName)); if phe = nil then Exit; pPtr := PaPInAddr(phe^.h_addr_list); i := 0; while pPtr^[i] <> nil do begin Result := inet_ntoa(pptr^[i]^); Inc(i); end; WSACleanup; end; |
#3
|
|||
|
|||
![]() А впрочем хрен с ним - есть рабочий код на сокетах - нужно его и юзать.
![]() Код:
uses Winsock; procedure TForm1.Button4Click(Sender: TObject); var wsdata: TWSAData; hostName: array [0..255] of ansichar; hostEnt: PHostEnt; addr: PAnsiChar; begin WSAStartup ($0101, wsdata); try GetHostName(hostName, sizeof (hostName)); StrPCopy(hostName,Edit4.Text); hostEnt:=GetHostByName(hostName); if Assigned(hostEnt) then if Assigned(hostEnt^.h_addr_list) then begin addr:=hostEnt^.h_addr_list^; if Assigned(addr) then begin Label9.Caption:=Format('%d.%d.%d.%d',[byte(addr[0]), byte(addr[1]),byte(addr[2]),byte(addr[3])]); end; end; finally WSACleanup; end; end; Если решения с idHTTP завтра никто не предложит, то топик можно закрыть ![]() |