在InstallShield中通过主机名获取IP地址

原创 2003年08月26日 21:03:00
/* written by Jaron ,2002-07-15 */
/* 原出处:江都资讯网论坛 http://www.jiangdu.net/bbs ;;*/
/* 转载请注明出处和保留此版权信息 */
/* 欢迎使用SiteManager网站管理系统 http://sitemanager.cnzone.net ;; */

// 文 件 名: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;

根据主机名获取IP地址

根据主机名获取IP地址
  • wangyanming123
  • wangyanming123
  • 2016年04月04日 16:57
  • 265

java中IP地址、主机名的获取

java中IP地址和主机名的获取
  • wangyanming123
  • wangyanming123
  • 2016年03月29日 10:35
  • 587

用IP地址反查主机名

在日常工作中,要获取一个机器的主机名,最简单的方法是通过ping命令来实现,例如:要获取百度的主机名,就可以ping www.baidu.com 通过ping命令,既可以获取到该机器的主机名,...
  • mayor125
  • mayor125
  • 2013年12月09日 14:11
  • 3511

Java-通过IP地址获得域名和主机名

《JAVA开发实战1200》JAVA API 1.7
  • qq_25935763
  • qq_25935763
  • 2016年09月24日 23:18
  • 2265

知道局域网ip地址,获取该ip的主机名

最近在调试代码,发现有人更改数据库的地址,能够知道这个人的ip地址,想看看是谁,可以通过如下方法: 知道局域网ip地址,获取该ip的主机名: windows操作系统下,在“开始”---运行---c...
  • zhengqiqiqinqin
  • zhengqiqiqinqin
  • 2012年11月12日 17:07
  • 3426

asp.net实现通过域名或主机名获得IP地址

通过域名查IP,是站长的常用功能了,用asp.net实现的代码如下: public string GetIpByHostName(string hostName) {     hostNam...
  • my98800
  • my98800
  • 2017年07月24日 08:08
  • 226

Linux中根据主机名获取其在局域网中的IP地址

Usage: net rpc             Run functions using RPC transport net rap             Run functions usi...
  • maoyongfan3
  • maoyongfan3
  • 2015年06月08日 15:43
  • 1050

通过sql语句获得IP和主机名

SQL> desc UTL_INADDR FUNCTION GET_HOST_ADDRESS RETURNS VARCHAR2  Argument Name                  ...
  • zhaojian1988
  • zhaojian1988
  • 2013年04月13日 15:31
  • 335

网络编程——获取主机名称和对应的ip地址

类:java.net.I try{ InetAddress []address=InetAddress.getAllByName("www.baidu.com");//通过主机名获取ip地址 ...
  • leixingbang1989
  • leixingbang1989
  • 2014年05月13日 14:34
  • 1041

通过主机名(域名)获取IP地址,主机别名等信息

通过主机名(域名)从主机数据库获取主机信息(IP地址,主机别名,标准主机名)...
  • s634772208
  • s634772208
  • 2015年06月05日 16:07
  • 3326
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:在InstallShield中通过主机名获取IP地址
举报原因:
原因补充:

(最多只允许输入30个字)