手机更新正在验证不了一直显示正在验证

> 只用C语言,怎么通过域名得到IP地址
只用C语言,怎么通过域名得到IP地址
tengzi & &
发布时间: & &
浏览:3 & &
回复:3 & &
悬赏:0.0希赛币
只用C语言,如何通过域名得到IP地址请问各位高手,在一个单片机程序下,如何只用C语言,如何通过域名得到IP地址?现在没有DNS服务器。
gethostbyname()函数
tens088 & &
12:19:36 & &
& & (0)(0)引用gethostbyname
gethostbyname
information
corresponding
gethostbyname
Parameters
null-terminated
gethostbyname
successful
parameter.
application
components.
Furthermore,
application
information
gethostbyname
gethostbyaddr,
structure.
gethostbyname
successful
gethostname.
gethostbyname
Otherwise,
WSAGetLastError.
WSANOTINITIALISED
successful
WSAStartup
WSAENETDOWN
WSAHOST_NOT_FOUND
Authoritative
WSATRY_AGAIN
Non-Authoritative
WSANO_RECOVERY
Nonrecoverable
WSANO_DATA
WSAEINPROGRESS
processing
WSACancelBlockingCall.
winsock2.h.
ws2_32.lib.
tenny52 & &
12:19:36 & &
& & (0)(0)引用#include &winsock2.h&#include &iostream&#pragma comment(lib,&ws2_32.lib&)int main(){ WSADATA WSAStartup(MAKEWORD(2,2),&wsadata); hostent *phost=gethostbyname(&&); in_ for(int i=0;;i++) {
char *p=phost-&h_addr_list[i];
if(p==NULL)
memcpy(&addr.S_un.S_addr,p,phost-&h_length);tens088 & &
12:19:36 & &
& & (0)(0)引用
本问题标题:
本问题地址:
温馨提示:本问答中心的任何言论仅代表发言者个人的观点,与希赛网立场无关。请对您的言论负责,遵守中华人民共和国有关法律、法规。如果您的言论违反希赛网问答中心的规则,将会被删除。
暂无合适的专家
&&&&&&&&&&&&&&&
希赛网 版权所有 & &&Linux上使用C语言编写获取某个域名IP地址的程序 - C语言当前位置:& &&&Linux上使用C语言编写获取某个域名IP地址的程序Linux上使用C语言编写获取某个域名IP地址的程序&&网友分享于:&&浏览:80次Linux下使用C语言编写获取某个域名IP地址的程序
根据《UNIX环境高级编程(第二版)》的相关章节的描述,编写了这个程序,以验证对所学知识的理解是否正确。
* 获取某个域名的ip地址,以列表形式打印。
* 作者: nswish
* 在如下环境编译通过:
* Kubuntu 11.1
* gcc version 4.6.1
#include &stdio.h&
#include &netdb.h&
#include &stdlib.h&
main(int argc, char *argv[]){
struct addrinfo * res, *
struct sockaddr_in *
const char *
char abuf[INET_ADDRSTRLEN];
int succ=0,i=0;
if(argc == 1)
printf("USAGE: getip &server name&\nFor example:\n
getip \n");
succ = getaddrinfo(argv[1], NULL, NULL, &res);
if(succ != 0)
printf("Can't get address info! error code = %d", succ);
exit(succ);
for(pt=res, i=0; pt != NULL; pt=pt-&ai_next, i++){
sinp = (struct sockaddr_in *)pt-&ai_
addr = (const char *)inet_ntop(AF_INET, &sinp-&sin_addr, abuf, INET_ADDRSTRLEN);
printf("%2d. IP=%s\n", i, addr);
将以上代码保存在名为getip.c的文件中,然后使用命令 gcc getip.c -o getip。
如果系统中没有gcc编译程序,可执行sudo apt-get install gcc来安装。
12345678910
12345678910
12345678910 上一篇:下一篇:文章评论相关解决方案 12345678910 Copyright & &&版权所有  最近正在学习使用C语言发送电子邮件,但是发送邮件需要连接到SMTP服务器,C语言只支持连接IP,而不支持连接域名,那么就需要将SMTP地址转换成IP地址了。虽然我们可以使用DOS命令中的ping命令来将SMTP服务器的IP地址转换出来,但这并不是我的本意。在网上找贴半天,实在是让人无语。最后,自己终于研究出来,故发表出来,希望能够帮助到大家。
  如果要将一个域名转换成一个IP地址,需要使用到Winsock中的函数gethostbyname。相反,如果我们想将一个IP地址转换成一个域名,则使用gethostbyaddr。今天,我们主要来详细讲解gethostbyname。
struct hostent FAR *PASCAL FAR gethostbyname(const char FAR * name);
其中,name指的是指向一个域名的指针,该函数返回的是一个hostent型的结构体。
结构体定义如下:
struct hostent
char FAR * h_
char FAR * FAR * h_
char FAR * FAR * h_addr_
hostent-&h_name
指的是主机的规范名,例如.hk的规范名其实是www-wide.
hostent-&h_aliases
指的是主机的别名,例如.hk就是google他自己的别名,有时候,有的主机有好几个别名,这些其实都是为了易于用户的记忆而为自己的网站多取的名字
hostent-&h_addrtype
指的是主机IP地址的类型,可能是IPV4(AF_INET)或者是IPV6(AF_INET6)
hostent-&h_length
指的是主机IP地址的长度,如果是IPV4,则是4
hostent-&h_addr_list
表示主机的IP地址,需要使用inet_ntoa转换成字符串格式的IP地址。IP地址可能有1&&更多个。
inet_ntoa函数将一个IP转换成一个互联网标准点分格式的字符串。
char FAR * inet_ntoa( struct in_addr in);
注意:如果使用inet_ntoa转换hostent-&h_addr_list,需要强制转换成struct in_addr *格式。
下面是源代码例程
char * smtpIp(char * url)
char ipconfig[20];
if((iphost = gethostbyname(url)) != NULL)
int i = 0;
while(iphost-&h_addr_list[i])
char ip[20];
memcpy(&ip, inet_ntoa(*((struct in_addr *)iphost-&h_addr_list[i])), 20);
printf("%s", ip);
memset(ip, '\0', 20);
注意:在调用任何Winsock函数之前,必须先调用WSAStartup函数
转载本文请注明来源:/cnlyml
阅读(...) 评论()3234人阅读
C#代码片段(82)
IPHostEntry hostinfo = Dns.GetHostByName(@&&);
IPAddress[] aryIP = hostinfo.AddressL
string result = aryIP[0].ToString();
IPHostEntry hostinfo = Dns.GetHostEntry(str);
IPAddress[] aryIP = hostinfo.AddressL
_return = aryIP[0].ToString();
/// &summary&
/// 域名转换为IP地址
/// &/summary&
/// &param name=&hostname&&域名或IP地址&/param&
/// &returns&IP地址&/returns&
public static string Hostname2ip(string hostname)
if (IPAddress.TryParse(hostname, out ip))
return ip.ToString();
return Dns.GetHostEntry(hostname).AddressList[0].ToString();
catch (Exception)
throw new Exception(&IP Address Error&);
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:501664次
积分:5554
积分:5554
排名:第3712名
原创:69篇
转载:125篇
评论:68条
(1)(3)(2)(1)(1)(2)(1)(1)(1)(1)(1)(1)(5)(1)(3)(3)(2)(3)(1)(1)(5)(2)(2)(1)(1)(2)(1)(1)(6)(1)(2)(1)(3)(2)(4)(2)(1)(5)(5)(1)(2)(12)(1)(2)(8)(8)(1)(3)(6)(1)(2)(1)(6)(4)(8)(1)(8)(3)(2)(5)(1)(1)(3)(11)(1)(10)

我要回帖

更多关于 更新一直显示正在验证 的文章

 

随机推荐