Delphi 域名解析为IP地址

花生壳:
1.LJSZForm-Lable1-Caption改成 “IP地址或域名:”
2.LJSZForm-BitBtn1Click-注释掉--else if IsIP(Trim(IPEdit.Text))=False then
TLShowMessage(‘IP地址错误‘,False)

3.DataM-DLDataSrvr-fmLJWait.Label1.Caption:=‘正在连接数据服务器,请稍候....‘;
fmLJWait.Update;-后面SConn.Address:=ZJIPAdd;改成
if IsIP(Trim(ZJIPAdd)) then
begin
SConn.Address:=ZJIPAdd;
end else
begin
SConn.Address:=HostToIP(ZJIPAdd);
end;
4.DataM加一个函数解析花生壳域名
function HostToIP(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;
5.DataM-uses-加上,WinSock

 

改变服务端:
1.tljxcwj-MainForm.Caption:=DMName+iif(m_RegFlags=0,‘(未注册)‘,‘‘);改成 MainForm.Caption:=DMName;
2.DataM-SConn
Port:5927
ServerGUID:{F64E160D-552B-4C8B-9428-3C850B53A6F9}
3.DataM-DLDataSrvr-
Function TDataM.DLDataSrvr():Boolean; // 登录数据服务器
Var Re:String;
RegFlags:Integer;
HWndCalc:HWnd;
XFFlags:Boolean;
IPSvr:String;
begin
Result:=True;
if DataM.SConn.Connected then
DataM.SConn.Close;


CSPath:=Extractfiledir(application.ExeName);
InstProc(‘midas.dll‘);
InstProc(‘dbclient.dll‘);
InstProc(‘intrcpt.dll‘);

GetZJLJFS();
if ZJLJFS=0 then
begin
if (FileExists(CSPath+‘\‘+ServerFileName)) then
begin
HWndCalc:=FindWindow(nil,ServerRunFlags);
if HWndCalc=0 then
WinExec(PChar(CSPath+‘\‘+ServerFileName),SW_RESTORE);
SConn.Address:=‘127.0.0.1‘;
end
else
begin
Application.CreateForm(TLJSZForm,LJSZForm);
if LJSZForm.ShowModal=mrCancel then
begin
ExitFlags:=True;
Result:=False;
LJSZForm.Free;
exit;
end;
LJSZForm.Free;
end;
end;

fmLJWait.Label1.Caption:=‘正在查找数据服务器,请稍候....‘; fmLJWait.Show; fmLJWait.Update; XFFlags:=True; While XFFlags do begin XFFlags:=False; if ZJLJFS=1 then begin fmLJWait.Label1.Caption:=‘正在连接数据服务器,请稍候....‘; fmLJWait.Update; if IsIP(Trim(ZJIPAdd)) then begin SConn.Address:=ZJIPAdd; end else begin SConn.Address:=HostToIP(ZJIPAdd); end; end else begin fmLJWait.Label1.Caption:=‘正在读取数据服务器的IP地址,请稍候....‘; fmLJWait.Update; Re:=DIPHttp1.GetSrvrIP(ZJDLZH,ZJDLMM); if Re=‘Error‘ then begin XFFlags:=True; end else begin fmLJWait.Label1.Caption:=‘正在连接数据服务器,请稍候....‘; fmLJWait.Update; SConn.Address:=Re; end; end; if Not XFFlags then begin try DataM.SConn.Connected:=True; except XFFlags:=True; end; end; if XFFlags then begin fmLJWait.Close; Application.CreateForm(TLJSZForm,LJSZForm); if LJSZForm.ShowModal=mrCancel then begin XFFlags:=False; ExitFlags:=True; Result:=False; LJSZForm.Free; exit; end else begin LJSZForm.Free; fmLJWait.Show; fmLJWait.Update; end; end; end; YGDAListCDS.Open; fmLJWait.Close;end;4.Pubsub-Const SJtmpFileName=‘tlclienttmpN.exe‘; // 升级时的临时文件 JKFileName=‘TLJK.exe‘; // 鸿鹏监控文件 RegTabeBoot=‘\Software\TaiLaiSoft\‘; // 在注册表中根 RegTableWZ=‘TLWJGL‘ ; // 注册表目录的文件名 ServerFileName=‘TLWJSrvr.exe‘; // 服务端程序名称 ServerRunFlags=‘tlwjglsrvr‘; // 服务端已运行的标识 m_SoftName=‘商务E点通五金版‘; m_SoftCaption=‘商务E点通五金版‘; AdminRunFlags = ‘TLJXCWJAdmin‘; // 客户端系统管理员运行标识 ClientRunFlags = ‘TLJXCWJClient‘; // 客户端运行标识 FXiniFileName=‘TLJXCWJ‘ ; // INI文件的文件名 m_SoftVer=‘1.00‘;5.Pubsub-procedure GetSysOption;-IniFileName:=CSPath+‘\‘+FXiniFileName+‘.ini‘;

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐