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

时间: 2024-08-04 04:53:09

在InstallShield中通过主机名获取IP地址的代码_其它的相关文章

asp下比较全面的获取IP地址的代码_应用技巧

最简单的用以下语句: ip=request.ServerVariables("REMOTE_ADDR")  response.Write(ip) 但这种方法对代理服务器上网的就不准了,故比较全面的是用下面的方法: 复制代码 代码如下: <%Private Function getIP()   Dim strIPAddr   If Request.ServerVariables("HTTP_X_FORWARDED_FOR") = "" OR 

oracle函数:获取Internet主机名和ip地址

    Oracle包utl_inaddr    作用:用于取得局域网或Internet环境中的主机名和IP地址.    1.utl_inaddr.get_host_address 环境中IP地址    如果查询失败,则提示系统错误    查询www.qq.com的IP地址    select UTL_INADDR.get_host_address('www.qq.com') from dual;    查询本机IP地址    select UTL_INADDR.get_host_address

oracle获取Internet主机名和ip地址

  Oracle包utl_inaddr 作用:用于取得局域网或Internet环境中的主机名和IP地址. 1.utl_inaddr.get_host_address 环境中IP地址 如果查询失败,则提示系统错误 查询www.qq.com的IP地址 select UTL_INADDR.get_host_address('www.qq.com') from dual; 查询本机IP地址 select UTL_INADDR.get_host_address() from dual; 查询局域网内yue

《Linux防火墙(第4版)》——1.5 主机名和IP地址

1.5 主机名和IP地址 人们喜欢使用词语来命名事物,例如命名一个计算机为mycomputer.mydomain.example.com.从技术上严格来说,这个命名并不指这台计算机,而是这台计算机中的网络接口.如果这台计算机有多个网卡,每个网卡将拥有不同的名字以及地址,看上去可能是在不同的网络和不同的子域中. 主机名的各部分间使用点进行分割.例如mycomputer.mydomain.example.com,最左边的部分mycomputer,是主机名,而.mydomain..example以及.

利用java实现对实验室局域网主机或宿舍网络主机的扫描监控,要 求输出主机名、IP 地址、MAC 地址等信息

问题描述 利用Java实现对实验室局域网主机或宿舍网络主机的扫描监控,要求输出主机名.IP地址.MAC地址等信息,做个简单的界面,跪求源代码 解决方案

Linux下Python获取IP地址的代码_python

<lnmp一键安装包>中需要获取ip地址,有2种情况:如果服务器只有私网地址没有公网地址,这个时候获取的IP(即私网地址)不能用来判断服务器的位置,于是取其网关地址用来判断服务器在国内还是国外(脚本为了使国内用户快速下载,yum源自动设置成163,这个情况就需要获取网关地址):如果服务器有公网地址,这时获取的IP地址可用来直接判断服务器地理位置. 获取服务器IP,如果有公网地址就取公网地址,没有公网地址就取私网网址 下面是之前我用shell来获取本地IP脚本: IP=`ifconfig | g

C#中如何得到主机名与IP地址

ip地址 /* * Copyright (c) 2006,四川师范大学 * All rights reserved. * 文件名称:GetIpAndName * 文件标识:见配置管理计划书 * 文件摘要:得到本地主机的名字与IP */ using System; using System.Net; /* * 当前版本:1.0 * 软件作者:安美洪 * 完成日期:2006年3月28日 * * 取代版本:无 * 原作者 :无 * 完成日期:无 */ namespace GetIpAndName {

根据网卡名获取IP地址,以及掩码地址

nterface name is something like "eth0″ and the ip address of the interface can be retrieved using the ioctl function. Here is a simple piece of code that demonstrates how : Code 1 #include <stdio.h> 2 #include <string.h> 3 #include <sy

java中通过网卡名称获取IP地址_java

复制代码 代码如下: package me.xuzs.sso.test; import java.net.InetAddress;import java.net.NetworkInterface;import java.net.SocketException;import java.util.Enumeration; public class InternetTest {     public static void main(String[] args) {        String net