通过域名获取IP地址和本机IP地址

#include <stdio.h>
#include <stdlib.h>
#include <winsock2.h>
#pragma comment(lib, "ws2_32.lib")

int main(int argc, char *argv[])
{
    WSADATA wsaData;
    WSAStartup(MAKEWORD(2, 2), &wsaData);
    
    char webSite[80] = {0};
    puts("Enter Website:");
    gets(webSite);
    struct hostent *host = gethostbyname(webSite);
    if(!host)
    {
        puts("Get IP address error!");
        exit(0);
    }
    
    //别名
    int i;
    for(i = 0; host->h_aliases[i]; i++)
    {
        printf("Aliases %d: %s.\n", i+1, host->h_aliases[i]);
    } 
    
    //地址类型
    printf("Address type: %s\n",(host->h_addrtype == AF_INET) ? "AF_INET" : "AF_INET6");
    
    //IP地址
    for(i = 0; host->h_addr_list[i]; i++)
    {
        printf("IP addr %d: %s\n", i+1, inet_ntoa(*(struct in_addr*)host->h_addr_list[i]));
    } 
    
    /****************获取本机IP地址*******************/
    
    //获取本机名称 
    char szHost[256];
    gethostname(szHost, 256);
    
    //通过本机名称获取本机地址信息
    HOSTENT *pHost = gethostbyname(szHost);
    if(pHost!=NULL)
    {
        //遍历并打印本地所有IP地址
        for(i = 0; pHost->h_addr_list[i]; i++)
        {
        struct in_addr *addr = (struct in_addr*)*(pHost->h_addr_list);
        printf("本机IP %d: %s\n", i+1, inet_ntoa(addr[i]));
        }
    } 
    
    return 0; 
}
时间: 2024-08-13 01:32:51

通过域名获取IP地址和本机IP地址的相关文章

获取用户的IP地址和本机IP4地址

/// <summary> /// 获取用户的IP地址/// </summary> /// <returns></returns> public static string GetIPAddress() { string user_IP = string.Empty; if (System.Web.HttpContext.Current.Request.ServerVariables["HTTP_VIA"] != null) { if (

获取本机IP及在本机IP的基础上自增1(只针对有一个IP的机器)

1.获取本机IP 1 char* getLocalIP() 2 { 3 WSADATA wsaData; 4 int err = WSAStartup(MAKEWORD(2, 0), &wsaData); 5 if (err != 0) 6 { 7 OUTINFO_1_PARAM("ASTSWSAStartup执行错误%d\n",err); 8 return NULL; 9 } 10 //获取主机名 11 char szHostName[256] = {0}; 12 int n

本机ip、127.0.0.1和0.0.0.0区别及内环流量

所谓内环流量 简单的说是指 计算机内部,程序间通讯产生的流量,或者叫 本地流量,对应的是来自网络的流量. 比如,你安装了卡巴斯基,avast 或者 NOD32,这些程序都有 网络监控功能,会接管来自网络的流量,当你上网.下载的时候,上传.下载都会被 卡巴斯基.NOD32 接管,然后再分发给 实际的进程.在不区分内环流量的时候,你会发现所有带网络监控功能的安全软件上传.下载量都非常大,这就是因为他们接管网络流量导致的. 别外常见的情况是,使用 在线视频类软件遇到的,在优酷看视频的时候,流量都被 i

oracle 中如何获取本机ip地址,根据IP地址获取域名?

-----解析ip 地址 SQL> select utl_inaddr.get_host_address('google.com') from dual; UTL_INADDR.GET_HOST_ADDRESS('GOOGLE.COM') -------------------------------------------------------------------------------- 122.229.30.202 -----获取本机IP地址 SQL> select utl_ina

Linux C 网络编程 - 获取本地 ip 地址,mac,通过域名获取对应的 ip

获取本地 ip 地址,mac,通过域名获取对应的 ip, 是网络编程可能遇到的比较常见的操作了,所以总结如下(封装了3个函数), 直接上代码: #include <stdio.h> #include <stdlib.h> #include <string.h> #include <errno.h> #include <unistd.h> #include <netdb.h> #include <net/if.h> #inc

获取本机IP地址

这里有两种方法: 1 //获取本机IP 2 - (NSString *)localIPAddress 3 { 4 NSString *localIP = nil; 5 struct ifaddrs *addrs; 6 if (getifaddrs(&addrs)==0) { 7 const struct ifaddrs *cursor = addrs; 8 while (cursor != NULL) { 9 if (cursor->ifa_addr->sa_family == AF_

关于是用dotnet获取本机IP地址+计算机名的方法

印象中在maxscript帮助文档里找到过方法,但是当时没记下来.只能通过dotnet实现了. 如果电脑有无线网卡和本地连接,可能会出现乱码,也问了写dotnet的朋友,提供了一些思路,不过最终还是使用了这个笨办法. fn getIP_PCname = ( cc = (dotnetclass "System.Net.Dns") oo = cc.GetHostAddresses(cc.GetHostName()) for ip = 1 to oo.count do ( getip = f

java 获取本机ip及mac地址

package com.achun.test; import java.net.Inet4Address;import java.net.Inet6Address;import java.net.InetAddress;import java.net.NetworkInterface;import java.util.Enumeration; public class HelloWorld { public static void main(String[] args) { // TODO Au

java获取本机IP地址

/** * WIFI没打开:ip为127.0.0.1 * 获取本机IP地址字符串 * @return */ public String getWifiIp() { if (!getWifiEnabled()) { return "127.0.0.1"; } WifiInfo wifiInfo = mWifiManager.getConnectionInfo(); int ipAddress = wifiInfo.getIpAddress(); String ip = intToIp(i