InstallShield高级应用----判断是否是本机

//判断是否是本机,以本机的IP和计算机名称比较
//szServerName - 判断的服务名称
//若是,则返回TRUE,否则返回FALSE
function BOOL CheckISLocalServer(szServerName)
WSAData structWSAData;
WSAData POINTER pWSAData;
//
IPName LocalIPName;
IPName POINTER pLocalIPName;
//
IPAddrList structIPAddrList;
IPAddrList POINTER pIPAddrList;
IPAddPtr structIPAddPtr;
IPAddPtr POINTER pIPAddPtr;

POINTER pIN_Addr_Struct;
HostEnt structHostEnt;
HostEnt POINTER pHostEnt;
SHORT nlen;
NUMBER nIPNetAddr;

NUMBER nVersion;
STRING szMsg;
STRING szDefault;
STRING szURL;
STRING szPath;
NUMBER nRC;
NUMBER nRC2;
STRING szHostName;
STRING szMYIPAddr;
POINTER pWinSockReturn;
STRING szInitHostName;
begin
szInitHostName = szServerName;
StrToUpper(szInitHostName,szInitHostName);
StrReplace(szInitHostName,"\\SQLEXPRESS","",0);

pWSAData = &structWSAData;

nRC = UseDLL ("wsock32.dll");
pWSAData -> wHighVersion = 1;
pWSAData -> wVersion = 1;
nVersion = 0x02000002; // can be 0x01000001 for Windows NT but Windows 95 requires the version 2 settings

pWinSockReturn = WSAStartup(nVersion, pWSAData);
pWinSockReturn = gethostname(szHostName,100);
pHostEnt = gethostbyname(szHostName);

nlen = pHostEnt -> h_length; // debug check (should be 4)
pIPAddPtr = pHostEnt -> ph_addr_list;
pIPAddPtr = *pIPAddPtr;
nIPNetAddr = *pIPAddPtr;
// nIPNetAddr = pIPAddPtr -> nIPAddr;
pLocalIPName = inet_ntoa( nIPNetAddr );
szMYIPAddr = pLocalIPName -> szIPAddr;
WSACleanup();
UnUseDLL("wsock32.dll");

if(szInitHostName=szMYIPAddr || szInitHostName = szHostName) then
return TRUE;
else
return FALSE;
endif;

end;

转载于:https://www.cnblogs.com/chhuic/archive/2011/06/04/2072706.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值