青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品



做網(wǎng)絡(luò)模塊的時(shí)候經(jīng)常會(huì)遇到有關(guān)網(wǎng)址的處理.一般大致的情形是3種:

1.得到的是域名,如:www.3322.org

2.得到的是實(shí)際的IP地址,如:61.160.235.203

3.得到的是經(jīng)過(guò)inet_addr處理過(guò)的IP,為unsigned long(DWORD)

一.那么如果是給出點(diǎn)分制的IP要轉(zhuǎn)為DWORD型是如何轉(zhuǎn)化呢?這個(gè)其實(shí)最簡(jiǎn)單,有專門(mén)的函數(shù)專門(mén)處理此事

unsigned long dwIP = inet_addr("222.212.12.77");
printf("IP(%s)->DWORD(%lu)\n");

//output
IP(222.212.12.77)->DWORD(1292686558)

二.第一種情況的逆轉(zhuǎn)化

#include <stdio.h>
#include <stdlib.h>
#include <sys/select.h>
#include <netdb.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <errno.h>
#include <string.h>

int main(int argc, char *argv[])
{
	struct in_addr net;
	char tmp[16] = {0};

	if(argc != 3)
	{
		printf("You MUST enter 3 varibal.No.1:func name No.2:case.No.3:ip(string or DWORD)\n");
		return 0;
	}

	if(strcmp("1", argv[1]) == 0) 
	{
		char* ip_string;
		ip_string = argv[2];
		unsigned long dword = inet_addr(ip_string);

		printf("IP(%s)-->DWORD(%lu)\n", ip_string, dword);
	}
	else if(strcmp("2", argv[1]) == 0)
	{
		net.s_addr = (unsigned long)atol(argv[2]);
		strcpy(tmp, inet_ntoa(net));
		printf("DWORD(%s)-->IP(%s)\n",argv[2], tmp);
	}
	return 0;
}
這里給出一個(gè)點(diǎn)分制IP和DWORD相互轉(zhuǎn)化的程序
三.如果給出的是域名而想得到點(diǎn)分制的IP呢?
這里給出一個(gè)接口,支持輸入的類型是點(diǎn)分制和域名2中類型,返回的是DWORD型的IP
有一點(diǎn)要聲明的是gethostbyname這個(gè)函數(shù)必須在網(wǎng)絡(luò)連通的情況下才能正確完成域名的解析,你想,連個(gè)網(wǎng)都不通,它怎么解析?
#include <stdio.h>
#include <stdlib.h>
#include <sys/select.h>
#include <netdb.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <errno.h>
#include <string.h>


#define DWORD unsigned long

DWORD platform_domain2ip(const char *szDomain, char *szDotNumIP)
{
	char szAddr[32] = {0};
	struct hostent *pHost;

	printf("input domain name(%s)\n", szDomain);
	

	if((pHost = gethostbyname(szDomain)) == NULL)
	{
		printf("can not parse domain\n");
		return -1;
	}
	printf("HostName :%s\n",pHost->h_name);
	strcpy(szAddr, inet_ntoa(*((struct in_addr *)pHost->h_addr)));
	printf("IP Address :%s\n", szAddr);
	strcpy(szDotNumIP, szAddr);

	return inet_addr(szAddr);
}

int main(int argc, char *argv[])
{
	DWORD dwip;
	char *ip = malloc(32);
	//dwip = platform_domain2ip("www.3322.org", ip);
	dwip = platform_domain2ip("61.160.235.203", ip);
	printf("ip 1 (%s) 2 dw(%lu)\n", ip, dwip);
	return 0;
}
//可以將main的注冊(cè)分別打開(kāi)來(lái)判斷下結(jié)果是否正確,這里給出運(yùn)行的結(jié)果,有圖有真相
編譯的命令再說(shuō)下吧,怕有人不知道
gcc gethost.c –Wall –o gethost//在linux下
arm-hismall-linux-gcc gethost.c –Wall –o gethost//嵌入式環(huán)境下
 
此接口已經(jīng)在我的工程中使用,在平臺(tái)IP的解析和3322的解析中得到了應(yīng)用,所以是穩(wěn)定可行的.
這3中IP的轉(zhuǎn)化都了解了的話,那么網(wǎng)絡(luò)編程不就掃除了一個(gè)大石頭嗎?呵呵,大家功能進(jìn)步
 
網(wǎng)上比較流行的gethostbyname的例子如下,受到了啟發(fā)
#include <stdio.h>
#include <stdlib.h>
#include <sys/select.h>
#include <netdb.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <errno.h>
#include <string.h>

int main(int argc, char **argv)
{
    char *ptr,**pptr;
    struct hostent *hptr;
    char str[32];

    /* 取得命令后第一個(gè)參數(shù),即要解析的域名或主機(jī)名 */ 
    ptr = argv[1];

    /* 調(diào)用gethostbyname()。調(diào)用結(jié)果都存在hptr中 */ 
    if((hptr = gethostbyname(ptr)) == NULL)
    {
        printf("gethostbyname error for host:%s\n", ptr);
        return 1; /* 如果調(diào)用gethostbyname發(fā)生錯(cuò)誤,返回1 */
    }

     
    printf("official hostname:%s\n",hptr->h_name);

    /* 主機(jī)可能有多個(gè)別名,將所有別名分別打出來(lái) */ 
    for(pptr = hptr->h_aliases; *pptr != NULL; pptr++)
        printf("  alias:%s\n",*pptr);

    /* 根據(jù)地址類型,將地址打出來(lái) */
    switch(hptr->h_addrtype)
    {
        case AF_INET:
        case AF_INET6:
            pptr=hptr->h_addr_list;

            /* 將剛才得到的所有地址都打出來(lái)。其中調(diào)用了inet_ntop()函數(shù)*/
            for(;*pptr!=NULL;pptr++)
            printf("  address:%s\n", inet_ntop(hptr->h_addrtype,*pptr, str, sizeof(str)));
        break;
        default:
            printf("unknown address type\n");
        break;
    }

    return 0;
}

posted on 2011-06-27 17:46 大寶天天見(jiàn) 閱讀(1144) 評(píng)論(0)  編輯 收藏 引用 所屬分類: 2.C/C++/C#/Java
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            91久久久久久久久| 久久躁狠狠躁夜夜爽| 亚洲人成在线观看网站高清| 欧美极品aⅴ影院| 国产精品99久久久久久久久| 中文国产成人精品久久一| 国产精品高潮粉嫩av| 欧美一区二区视频在线观看2020| 香蕉成人久久| 136国产福利精品导航| 亚洲国产三级在线| 欧美性猛交xxxx乱大交蜜桃| 久久国产综合精品| 久久先锋影音av| 一本色道久久综合狠狠躁篇怎么玩 | 亚洲成在线观看| 欧美精品一区二区三区高清aⅴ| 亚洲一区在线观看视频| 久久xxxx| av72成人在线| 欧美一区二区日韩| 99视频一区二区三区| 午夜精品久久久久99热蜜桃导演| 激情丁香综合| 国产精品99久久久久久久久久久久| 国产欧美另类| 亚洲精品日韩欧美| 韩国av一区二区| 99国产麻豆精品| 狠狠色丁香久久综合频道 | 久久精品论坛| 欧美激情精品久久久久久免费印度| 香蕉乱码成人久久天堂爱免费| 久久中文在线| 欧美在线亚洲在线| 欧美日韩国产综合久久| 久久久久久久999| 国产精品黄页免费高清在线观看| 欧美好吊妞视频| 狠狠色综合日日| 亚洲欧美日韩中文在线制服| 亚洲毛片一区| 久久亚洲私人国产精品va媚药| 亚洲午夜在线视频| 欧美成年人视频网站| 蜜臀a∨国产成人精品| 国产拍揄自揄精品视频麻豆| 日韩一级二级三级| 亚洲免费黄色| 欧美a一区二区| 欧美91大片| 激情综合色综合久久综合| 午夜精品久久久久久久| 亚洲一区综合| 国产精品v日韩精品| 日韩一级精品| 亚洲小说春色综合另类电影| 欧美精品在线观看播放| 亚洲电影激情视频网站| 亚洲国产精品高清久久久| 久久只有精品| 欧美激情bt| 亚洲毛片在线| 欧美日韩在线免费| 一区二区三区产品免费精品久久75 | 亚洲人成在线观看一区二区| 久久亚洲美女| 最新热久久免费视频| 99这里有精品| 欧美私人网站| 亚洲欧美中日韩| 久久婷婷激情| 91久久精品日日躁夜夜躁欧美| 欧美va日韩va| 一区二区高清视频| 欧美影院在线| 亚洲高清视频的网址| 欧美黄色免费网站| 一卡二卡3卡四卡高清精品视频| 亚洲欧美日韩在线播放| 国产亚洲一区二区三区在线播放| 欧美在线综合| 亚洲国产日韩欧美一区二区三区| 日韩午夜在线电影| 国产精品视频精品视频| 久久国产夜色精品鲁鲁99| 亚洲第一精品在线| 亚洲尤物在线| 影音先锋亚洲视频| 欧美日韩 国产精品| 亚洲欧美影院| 亚洲国产综合91精品麻豆| 亚洲在线播放| 亚洲国产一区在线观看| 国产精品大全| 老司机一区二区三区| 亚洲小视频在线| 欧美激情a∨在线视频播放| 午夜精品福利一区二区蜜股av| 狠狠综合久久av一区二区小说| 欧美激情一区二区三区在线| 亚洲欧美伊人| 亚洲免费观看高清在线观看 | 欧美成人精品在线播放| 亚洲午夜视频在线| 欧美激情一二区| 香蕉久久久久久久av网站| 亚洲精品综合在线| 国内精品久久久| 国产精品成人在线观看| 免费日韩av电影| 欧美一区二区视频网站| 一区二区日韩欧美| 亚洲国产第一| 久久综合久色欧美综合狠狠| 亚洲一级黄色片| 最近看过的日韩成人| 国产在线欧美日韩| 国产精品国产一区二区| 欧美日韩国产一中文字不卡| 久久亚洲综合色| 久久精品欧美| 欧美一区二区播放| 亚洲女优在线| 亚洲视频中文| 一区二区久久久久久| 亚洲第一色在线| 欧美刺激午夜性久久久久久久| 欧美中文字幕视频在线观看| 亚洲一区三区在线观看| 亚洲乱码国产乱码精品精可以看 | 久久漫画官网| 久久久在线视频| 久久精品国产亚洲a| 新67194成人永久网站| 亚洲影院高清在线| 亚洲尤物视频在线| 翔田千里一区二区| 午夜久久资源| 欧美一区二区在线看| 欧美一区二区三区免费视频| 亚洲欧美影院| 久久精品女人的天堂av| 久久国产精品亚洲va麻豆| 欧美在线亚洲在线| 久久久人人人| 欧美国产一区二区| 亚洲国产精品专区久久 | 亚洲欧美日韩在线一区| 午夜精品久久久久久久久久久久久 | 亚洲免费高清| 一区二区三区回区在观看免费视频| 亚洲人成在线观看一区二区| 亚洲片在线资源| 99这里只有精品| 亚洲欧美一区二区三区久久| 午夜精品久久久久久99热软件| 午夜欧美大片免费观看| 久久精品女人的天堂av| 欧美wwwwww| 欧美精品123区| 国产精品美女在线| 国产中文一区二区| 最新日韩在线| 亚洲欧美激情诱惑| 久久视频免费观看| 亚洲国产精品成人综合色在线婷婷| 亚洲精品乱码久久久久久日本蜜臀| 中文精品一区二区三区 | 亚洲精品一区在线观看香蕉| 亚洲视频狠狠| 久久综合九色综合久99| 欧美日韩美女一区二区| 国产精品自拍三区| 91久久视频| 久久精品二区亚洲w码| 欧美激情视频给我| 亚洲在线观看免费视频| 久久乐国产精品| 国产精品入口麻豆原神| 激情欧美国产欧美| 亚洲午夜精品久久久久久浪潮 | 亚洲国产三级| 欧美一级一区| 欧美日韩免费精品| 伊伊综合在线| 午夜在线播放视频欧美| 欧美激情亚洲精品| 新狼窝色av性久久久久久| 欧美福利视频网站| 狠狠色伊人亚洲综合成人| 亚洲午夜极品| 最新亚洲一区| 久久久精品一区| 国产精品青草久久久久福利99| 亚洲精品国产精品国自产在线 | 小黄鸭视频精品导航| 亚洲精品一区二区三区蜜桃久| 久久精品一本久久99精品| 国产精品系列在线|