建站极客
脚本专栏 其它 正文
在InstallShield中通过主机名获取IP地址的代码
所属分类:
脚本专栏 / 其它
阅读数:
1621
收藏 0
赞 0
分享
// 文 件 名:setup.rul // 脚本功能:通过主机名获得TCP/IP地址 // 编写日期:2003-07-15 // 使用方法:调用函数 fGetIpAddress(szHost, szIPAdress) // written by Jaron ,2002-07-15 // 原出处:江都资讯网论坛 http://www.jiangdu.net/bbs;; // 转载请注明出处和保留此版权信息 // 欢迎使用SiteManager网站管理系统 http://sitemanager.cnzone.net;; #include "Sddialog.h" #include "IpAddress.rul" STRING szIPAddress; STRING szHostName; BOOL nResult; program SdShowDlgEdit1 ("", "请输入您的主机名称", "主机名:", szHostName); nResult = fGetIpAddress(szHostName, szIPAddress); if nResult then MessageBox ("IP地址是:" + szIPAddress, INFORMATION); endif; endprogram #include "Sddialog.rul" ========================== // 文 件 名:IpAddress.rul // 脚本功能:通过主机名获得TCP/IP地址 // 编写日期:2003-07-15 // 使用方法: // 1. 在 setup.rul 前面加入 #include "IpAddress.rul" // 2. 调用函数 fGetIpAddress(szHost, szIPAdress) // written by Jaron ,2002-07-15 // 原出处:江都资讯网论坛 http://www.jiangdu.net/bbs;; // 转载请注明出处和保留此版权信息 // 欢迎使用SiteManager网站管理系统 http://sitemanager.cnzone.net;; prototype NUMBER WSOCK32.WSAStartup( NUMBER, POINTER); prototype NUMBER WSOCK32.gethostbyname(STRING); prototype NUMBER KERNEL32.RtlMoveMemory (POINTER, NUMBER, NUMBER); prototype NUMBER WSOCK32.WSACleanup(); prototype fGetIpAddress(STRING, BYREF STRING); typedef WSADATA begin INT wversion; INT wHighVersion; STRING szDescription[255]; STRING szSystemStatus[128]; INT iMaxSockets; INT iMaxUdpDg; INT lpszVendorInfo; end; typedef HOSTENT begin NUMBER hName; // As Long NUMBER hAliases; // As Long SHORT hAddrType; //As Integer SHORT hLength; // As Integer NUMBER hAddrList; // As Long end; typedef IPADDRESS begin CHAR b1; //First CHAR b2; //Second CHAR b3; //Third CHAR b4; //Fourth end; function fGetIpAddress(szHost, szIPAdress) WSADATA StructWSAData; WSADATA POINTER pStructWSAData; HOSTENT StructHostEnt; HOSTENT POINTER pStructHostEnt; NUMBER nResult; NUMBER pHostAddress; POINTER pHostIPAddress; NUMBER HostIPAddress; IPADDRESS IpAddress; IPADDRESS POINTER pIpAddress; STRING sb1, sb2, sb3, sb4; NUMBER nStartUp; BOOL bReturn; begin if szHost = "" then return FALSE; endif; if UseDLL(WINSYSDIR^"WSOCK32.DLL") < 0 then return FALSE; endif; pStructWSAData = &StructWSAData; pStructHostEnt = &StructHostEnt; nStartUp = WSAStartup(0x101, pStructWSAData); if nStartUp != 0 then return FALSE; endif; pHostAddress = gethostbyname(szHost); if pHostAddress != 0 then RtlMoveMemory (pStructHostEnt, pHostAddress, 16); pHostIPAddress = &HostIPAddress; RtlMoveMemory (pHostIPAddress, StructHostEnt.hAddrList, 4); pIpAddress = &IpAddress; RtlMoveMemory (pIpAddress, HostIPAddress, 4); NumToStr(sb1, pIpAddress->b1); NumToStr(sb2, pIpAddress->b2); NumToStr(sb3, pIpAddress->b3); NumToStr(sb4, pIpAddress->b4); szIPAdress = sb1 + "." + sb2 + "." + sb3 + "." + sb4 ; bReturn = TRUE; else bReturn = FALSE; endif; if nStartUp = 0 then WSACleanup(); endif; UnUseDLL("WSOCK32.DLL"); return bReturn; end;
git eclipse 插件的安装 通常我们开发项目用ecliipse的比较多。所以在这把eclipse的Git插件安装和使用,需要的朋友可以参考下
评论 0
收藏 0
赞 0
分享
软件测试方法大汇总 本文主要介绍几种软件测试方法,这里对软件测试做了几种分类和汇总,在做软件测试的时候可以用适当的方法,有需要的小伙伴可以参考下
评论 0
收藏 0
赞 0
分享
R语言利用loess如何去除某个变量对数据的影响详解 这篇文章主要给大家介绍了关于R语言利用loess去除某个变量对数据的影响的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
评论 0
收藏 0
赞 0
分享
linux下直接拷贝新版本R的方法 下面小编就为大家分享一篇linux下直接拷贝新版本R的方法,非常简单,具有很好的参考价值,希望对大家有所帮助
评论 0
收藏 0
赞 0
分享
bat脚本输出日志的方法 这篇文章主要介绍了bat脚本输出日志的方法,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
评论 0
收藏 0
赞 0
分享
详解npm脚本和package.json npm是前端开发广泛使用的包管理工具,它让js开发者分享、复用代码更方便。这篇文章主要介绍了npm脚本和package.json,需要的朋友可以参考下
评论 0
收藏 0
赞 0
分享
查看更多