1,593
社区成员
发帖
与我相关
我的任务
分享
uses WinSock, IdHTTP;
function TForm1.GetIPFromUrl(const Url: string): string;
var
wsdata: TWSAData;
hostEnt: PHostEnt;
addr: PChar;
idhtp1: TIdHTTP;
begin
Result := '';
WSAStartup($0101, wsdata);
idhtp1 := TIdHTTP.Create(nil);
try
idhtp1.HandleRedirects := true; // 启用处理重定向
idhtp1.Get(Url, nil);
hostEnt := gethostbyname(PChar(idhtp1.Host));
if Assigned(hostEnt) then
if Assigned(hostEnt^.h_addr_list) then
begin
addr := hostEnt^.h_addr_list^;
if Assigned(addr) then
begin
Result := Format('%d.%d.%d.%d', [byte(addr[0]),
byte(addr[1]), byte(addr[2]), byte(addr[3])]);
end
else
Result := '';
end
else
Result := '';
finally
WSACleanup;
idhtp1.Free;
end
end;
uses WinSock, IdHTTP;
function TForm1.GetIPFromUrl(const Url: string): string;
var
wsdata: TWSAData;
hostName: array[0..255] of char;
hostEnt: PHostEnt;
addr: PChar;
idhtp1: TIdHTTP;
begin
Result := '';
WSAStartup($0101, wsdata);
idhtp1 := TIdHTTP.Create(nil);
try
idhtp1.Get(Url, nil);
gethostname(hostName, sizeof(hostName));
StrPCopy(hostName, idhtp1.Host);
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
Result := Format('%d.%d.%d.%d', [byte(addr[0]),
byte(addr[1]), byte(addr[2]), byte(addr[3])]);
end
else
Result := '';
end
else
Result := '';
finally
WSACleanup;
idhtp1.Free;
end
end;
function TForm1.GetIPFromHost(const Name: string): string;
var
wsdata: TWSAData;
hostName: array[0..255] of char;
hostEnt: PHostEnt;
addr: PChar;
begin
WSAStartup($0101, wsdata);
try
gethostname(hostName, sizeof(hostName));
StrPCopy(hostName, Name);
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
Result := Format('%d.%d.%d.%d', [byte(addr[0]),
byte(addr[1]), byte(addr[2]), byte(addr[3])]);
end
else
Result := '';
end
else
Result := ''
else
begin
Result := '';
end;
finally
WSACleanup;
end
end;
// 调用
procedure TForm1.Button1Click(Sender: TObject);
begin
Edit2.Text := GetIPFromHost(Edit1.Text);
end;
lst := TStringList.Create;
RespData := TStringStream.Create('');
idhtp1 := TIdHTTP.Create(nil);
str_1 := 'http://www.hik-online.com/minjuyangtai';
idhtp1.Post(str_1, RespData);
idhtp1.Request.Referer := str_1;
reStr := RespData.DataString ;
这样吗? 好像卡住了