打印本文 打印本文 关闭窗口 关闭窗口
谈Delphi下Internet的编程技巧(一)
作者:武汉SEO闵涛  文章来源:敏韬网  点击数2072  更新时间:2009/4/23 18:38:25  文章录入:mintao  责任编辑:mintao
  WSAData: TWSAData;

  HostEnt: PHostEnt;

begin

  WSAStartup(2, WSAData);

  HostEnt := gethostbyname(PChar(Name));

  with HostEnt^ do

    Result := Format(''''%d.%d.%d.%d'''', [Byte(h_addr^[0]),

      Byte(h_addr^[1]), Byte(h_addr^[2]), Byte(h_addr^[3])]);

  WSACleanup;

end;

 

6.编写Internet软件常常会遇到检查用户输入的网址,E-mail地址等等,如何解决呢?

我这正好有写好的函数。

检查一个URL是否有效

 

uses wininet;

Function CheckUrl(url:string):boolean; //检查一个URL是否有效函数

var

hSession, hfile, hRequest: hInternet;

dwindex,dwcodelen :dword;

dwcode:array[1..20] of char;

res : pchar;

 

begin

if pos(''''http://'''',lowercase(url))=0 then

url := ''''http://''''+url;

 Result := false;

 hSession := InternetOpen(''''InetURL:/1.0'''',

 INTERNET_OPEN_TYPE_PRECONFIG,nil, nil, 0);

 if assigned(hsession) then

begin

hfile := InternetOpenUrl(hsession, pchar(url), nil, 0, INTERNET_FLAG_RELOAD, 0);

dwIndex := 0;

dwCodeLen := 10;

HttpQueryInfo(hfile, HTTP_QUERY_STATUS_CODE, @dwcode, dwcodeLen, dwIndex);

res := pchar(@dwcode);

result:= (res =''''200'''') or (res =''''302''''); //200,302未重定位标志

if assigned(hfile) then

InternetCloseHandle(hfile);

InternetCloseHandle(hsession);

end;

  end;

如何处理E-mail地址,下面给你个E-mail地址处理函数

 

function IsEMail(EMail: String): Boolean;

  var    s: String;  

 ETpos: Integer;

 begin  

 ETpos:= pos(''''@'''', EMail); 

  if ETpos > 1 then   

begin  

   s:= copy(EMail,ETpos+1,Length(EMail));   

  if (pos(''''.'''', s) > 1) and (pos(''''.'''', s) <

 length(s)) then    

   Result:= true else Result:= false; 

  end   

else  

   Result:= false;

 end;  

   procedure TForm1.Button1Click(Sender: TObject); 

begin  

 if isemail(Edit1.Text) then

   begin 

    ShowMessage(''''eMail-Address!'''');

    end;

 end; 

 

 

 

 

7,动态改变DNS Server的地址
下面的函数可以添加 DNS Server的地址
如想添加202.100.100.65 202.10.10.10
SetDNSAddresses(''''202.100.100.65 202.10.10.10'''') ;
//注意: 各地址之间用一个空格隔开


SetTDNSAddresses 定义如下

procedure SetDNSAddresses( sIPs : string );
begin
// 如果是 Windows NT用下面的代码
SaveStringToRegistry_LOCAL_MACHINE(
''''SYSTEM\CurrentControlSet'''' +
''''\Services\Tcpip\Parameters'''',
''''NameServer'''',
sIPs );

// 如果你用的是Windows 95用下面的代码

SaveStringToRegistry_LOCAL_MACHINE(
''''SYSTEM\CurrentControlSet'''' +
''''\Services\VxD\MSTCP'''',
''''NameServer'''',
sIPs );
end;

其中 SaveStringToRegistry_LOCAL_MACHINE 定义

uses Registry;

procedure SaveStringToRegistry_LOCAL_MACHINE(
sKey, sItem, sVal : string );
var
reg : TRegIniFile;
begin
reg := TRegIniFile.Create( '''''''' );
reg.RootKey := HKEY_LOCAL_MACHINE;
reg.WriteString( sKey, sItem, sVal + #0 );
reg.Free;
end;

 

 

上一页  [1] [2] 

打印本文 打印本文 关闭窗口 关闭窗口