• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    在InstallShield中通过主机名获取IP地址的代码
    // 文 件 名: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;
    您可能感兴趣的文章:
    • Android手机获取IP地址的两种方法
    • Linux下Python获取IP地址的代码
    • JS不能跨域借助jquery获取IP地址的方法
    • PowerShell脚本实现网卡DHCP自动获取IP地址、设置静态IP地址的方法
    • js获取IP地址的方法小结
    • java获取ip地址示例
    • java中通过网卡名称获取IP地址
    • asp下比较全面的获取IP地址的代码
    • 安卓 获取手机IP地址的实现代码
    上一篇:CGI脚本入门学习资料
    下一篇:在InstallShield中引用WINSOCK 的示例代码
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    在InstallShield中通过主机名获取IP地址的代码 在,InstallShield,中,通过,主,