Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Сети > Узнать информацию о прокси сервере


Автор: Poseidon 19.5.2005, 00:14
Код
uses 
  WinInet; 

function GetProxyInformation: string; 
var 
  ProxyInfo: PInternetProxyInfo; 
  Len: LongWord; 
begin 
  Result := ''; 
  Len := 4096; 
  GetMem(ProxyInfo, Len); 
  try 
    if InternetQueryOption(nil, INTERNET_OPTION_PROXY, ProxyInfo, Len) then 
      if ProxyInfo^.dwAccessType = INTERNET_OPEN_TYPE_PROXY then 
      begin 
        Result := ProxyInfo^.lpszProxy 
      end; 
  finally 
    FreeMem(ProxyInfo); 
  end; 
end; 

{************************************************************************** 
* NAME:    GetProxyServer 
* DESC:    Proxy-Server Einstellungen abfragen 
* PARAMS:  protocol => z.B. 'http' oder 'ftp' 
* RESULT:  [-] 
* CREATED: 08-04-2004/shmia 
*************************************************************************} 
procedure GetProxyServer(protocol: string; var ProxyServer: string; 
  var ProxyPort: Integer); 
var 
  i: Integer; 
  proxyinfo, ps: string; 
begin 
  ProxyServer := ''; 
  ProxyPort := 0; 

  proxyinfo := GetProxyInformation; 
  if proxyinfo = '' then 
    Exit; 

  protocol := protocol + '='; 

  i := Pos(protocol, proxyinfo); 
  if i > 0 then 
  begin 
    Delete(proxyinfo, 1, i + Length(protocol)); 
    i := Pos(';', ProxyServer); 
    if i > 0 then 
      proxyinfo := Copy(proxyinfo, 1, i - 1); 
  end; 

  i := Pos(':', proxyinfo); 
  if i > 0 then 
  begin 
    ProxyPort := StrToIntDef(Copy(proxyinfo, i + 1, Length(proxyinfo) - i), 0); 
    ProxyServer := Copy(proxyinfo, 1, i - 1) 
  end 
end; 

procedure TForm1.Button1Click(Sender: TObject); 
var 
  ProxyServer: string; 
  ProxyPort: Integer; 
begin 
  GetProxyServer('http', ProxyServer, ProxyPort); 
  Label1.Caption := ProxyServer; 
  label2.Caption := IntToStr(ProxyPort); 
end; 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)