1. 程式人生 > >8.解析主機名對應的別名和IPv4地址

8.解析主機名對應的別名和IPv4地址

使用gethostbyname解析主機名對應的別名和IPv4地址

#include <netdb.h>
#include <stdio.h>
#include <netinet/in.h>
#include <arpa/inet.h>

int main(int argc, char *argv[])
{
    char *ptr, **pptr;
    // INET_ADDRSTRLEN即為IPv4地址的點分十進位制字串形式的最大長度, 即16(包括字串尾的結束符)
    char str[INET_ADDRSTRLEN];
    struct hostent *hptr;

    // 可以輸入多個主機名
    while(--argc)
    {
        // 依次指向輸入的主機名字串
        // 然後使用gethostbyname進行解析, 返回一個hostent結構體指標
        ptr = *++argv;
        if ((hptr = gethostbyname(ptr)) == NULL)
        {
            printf("gethostbyname error for host %s: %s\n", ptr, hstrerror(h_errno));
            continue;
        }
        // hostent結構體的h_name成員:規範主機名
        printf("officical hostname: %s\n", hptr->h_name);
        // hostent結構體的h_aliases成員:別名列表
        for (pptr=hptr->h_aliases; *pptr!=NULL; pptr++)
            printf("\talias: %s\n", *pptr);
        // hostent結構體的h_addrtype成員:主機的地址型別, 一般為AF_INET
        switch (hptr->h_addrtype)
        {
            case AF_INET:
                // hostent結構體的h_addr_list成員:主機的地址列表
                pptr = hptr->h_addr_list;
                // 使用inet_ntop將二進位制的地址轉換為文字形式
                for (; *pptr != NULL; pptr++)
                    printf("\taddress: %s\n", inet_ntop(hptr->h_addrtype, *pptr, str, sizeof(str)));
                break;
            default:
                printf("unknown address type\n");
                break; 
        }
    }

    exit(0);
}


相關推薦

8.解析主機對應別名IPv4地址

使用gethostbyname解析主機名對應的別名和IPv4地址 #include <netdb.h> #include <stdio.h> #include <net

用getaddrinfo()函式,通過主機獲得ipv6ipv4地址

111111111111111 using the function "getaddrinfo()" to get the IP address from the hostname you provided; actually , the "getadrinfo()" function can get

Linux centos 主機顏色設定 別名設定

今天寫點簡單有趣的。至於為什麼把主機名顏色設定 和 別名設定放在一起寫,是因為他們的設定都是在一個檔案裡。.bashrc。.bashrc放在cd /root 這個目錄下! 這個檔案主要儲存個人的一些個性化設定,如命令別名、路徑等。 1、Linux主機名顏色設定,cento

CENTOS6.8 修改主機

部分 -i 其他 config fig master centos ont shell 1.臨時修改主機名 顯示主機名:[email protected]/* */:~$ hostnamemaster修改主機名:[email protected

Linux系統主機的修改網路配置

首先開啟已經安裝好的Linux系統 開啟終端 輸入hostname以檢視你現在的主機名  輸入下面的命令進入該檔案來修改主機名 修改為你想要主機名:          Esc鍵和“:wq”

無法解析主機怎麼辦

瀏覽網頁時,有時我們開啟一個連結,可能會遇到“無法解析主機名”,網頁打不開,怎麼辦? 如用獵豹安全瀏覽器開啟微信的網站,提示“錯誤資訊-105:無法解析主機名”,如何處理? 一:DNS伺服器異常或不合適; 二:瀏覽器問題;

如何高效實現掃描區域網IP、主機、MAC

近幾年工作經常使用RFID識讀器,智慧家居閘道器,溫溼度感測器、串列埠伺服器、視訊編碼器等,一般是有串列埠和網口,由於現場原因一般較少使用串列埠,大多使用網口。連線方法是IP地址和埠,有的裝置帶搜尋軟體,有的就不帶。經常測試環境和現場來回用,難免記混。同時使用網上的一些埠掃描工具,發現有一個問題,就是在進

開啟Hadoop2.6.0出現ssh無法解析主機等錯誤提示的解決辦法!

hd-m1: starting namenode, logging to /hadoop/hadoop-2.6.0/logs/hadoop-root-namenode-hd-m1.out HotSpot(TM): ssh: Could not resolve hostname HotSpot(TM): Tem

異常解決:Hadoop啟動出現ssh無法解析主機等錯誤提示

這幾天終於把Hadoop折騰起來了,自從本科畢設做完就再沒接觸過,現在研究生論文又拾起來了,不過以前用的是Hadoop0.20.0,最新的穩定版本已經升到2.7.1了,對於我這停留在原先版本的人來說,改動還是挺大的。 先說一下剛搭建執行時報的錯誤: WA

centos7 修改主機 修改主機對應的ip

修改主機名(臨時生效):hostname 主機名   修改主機名(永久生效):hostnamectl set-hostname xxx修改主機名對應的ip:vim /etc/hosts 重啟:reboo

Linux下是如何配置解析主機的(包括DNS服務)

我們要訪問DNS服務,必需知道DNS伺服器的IP地址,Linux使用/etc/resolv.conf檔案來存放DNS伺服器的IP地址。下面我們來了解下/etc/resolv.conf檔案 它的格式很簡單,每行以一個關鍵字開頭,後接一個或多個由空格隔開的引數。

java解析主機獲取ip地址

import java.net.*; /** * 解析主機名獲取ip地址 */ public class GetIpByHostName { public static void main

根據主機獲取PC的IP地址

<?php$host_name=array();for($i=1;$i<=6;$i++){ $host_name[$i]="pc".$i;      //所在區域網的PC由PC1~PC6命名

關於iOS配置ipv6ipv4地址不同時的處理辦法

當ipv6和ipv4地址不同時的處理: -(void)getHost{ if ([DeviceInfo isIpv6]) { return hostIpv6; } return hostIpv4; } -(void)get

關於監聽的總結(監聽配置裡的host部分只能使用主機嗎,用IP地址或localhost不能正確啟動監聽程式嗎?)

第一部分: lsnrctl工具下的三個命令,分別是status、stop、start。 我們從三個命令執行後在螢幕上顯示的結果來看,可以發現一個共性,就是都有“正在連線到”這句話 。 而且status和start兩個命令在“正在連線到”這句話 之後的要顯示的內容(基本)是一

配置服務主機域名IP解析

配置服務主機名和域名ip解析 配置服務主機名和域名IP解析 1 linux 配置主機、域名-ipCentOS7下修改主機名第一種:hostname 主機名01.hostname 主機名稱 這種方式,只能修改臨時的主機名,當重啟機器後,主機名稱又變回來了。第二種:hostnamectl set-hostname

主機名稱解析

對應關系 mar getent roc sysconf get 正向 -m gpo 主機名和名稱解析 配置當前主機的主機名: 1。hostname [Hostname] hostnamectl set-hostname HOS

Linux更改主機更改對應的域ip

更改主機名 vim /etc/sysconfig/network 更改後不會立即生效 reboot 或者使用指令 hostname XXX 然後exit重新登入 主機名對應的ip vim /etc/hosts

通過主機(域名)獲取IP地址主機別名等信息

單位 規範 nts byname 會有 msd 解析失敗 bsp 主機名 一、所用API函數介紹 struct hostent FAR*gethostbyname( const char FAR* name ); 傳入參數:const char FAR*

python 使用socket 獲得主機IP

python 使用socket 獲得主機名和ipWindows 10 平臺代碼:socket hostname socket.gethostname() ( hostname) sysinfo socket.gethostbyname_ex(hostname) ip_addr sysinfo[] ip_add