| 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] |