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-加上 ,WinSockapp

 

改变服务端:
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');orm

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;get

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';string