vc根据域名获取IP地址 gethostbyname()函数
以下是VC Socket初始化时用到的两个函数
一、WSAStartup函数
int WSAStartup
(
WORD wVersionRequested,
LPWSADATA lpWSAData
);
使用Socket的程序在使用Socket之前必须调用WSAStartup函数。该函数的第一个参数指明程序请求使用的Socket版本,其中高位字节指明副版本、低位字节指明主版本;操作系统利用第二个参数返回请求的Socket的版本信息。当一个应用程序调用WSAStartup函数时,操作系统根据请求的Socket版本来搜索相应的Socket库,然后绑定找到的Socket库到该应用程序中。以后应用程序就可以调用所请求的Socket库中的其它Socket函数了。该函数执行成功后返回0。
例:假如一个程序要使用2.1版本的Socket,那么程序代码如下
wVersionRequested = MAKEWORD( 2, 1 );
err = WSAStartup( wVersionRequested, &wsaData );
二、WSACleanup函数
int WSACleanup (void);
应用程序在完成对请求的Socket库的使用后,要调用WSACleanup函数来解除与Socket库的绑定并且释放Socket库所占用的系统资源。
三 Socket接口的检索有关域名、通信服务和协议等Internet信息的数据库函数,如
gethostbyaddr、gethostbyname、gethostname、getprotolbyname
getprotolbynumber、getserverbyname、getservbyport。
1.gethostname()
【函数原型】
int PASCAL FAR gethostname (char FAR * name, int namelen);
【使用说明】
该函数可以获取本地主机的主机名,其中:
name:<输出>用于指向所获取的主机名的缓冲区的指针。
Namelen:<输入>缓冲区的大小,以字节为单位。
返回值:若无错误,返回0;否则,返回错误代吗。
2.gethostbyname()
【函数原型】
struct hostent FAR * PASCAL FAR gethostbyname(const char FAR * name);
【使用说明】
该函数可以从主机名数据库中得到对应的“主机”。
该函数唯一的参数name就是前面调用函数gethostname()得到的主机名。若无错误,刚返回一个指向hostent结构的批针,它可以标识一个“主机”列表。
===============================================
根据域名 获取IP地址 gethostbyname()函数
可以运行的源代码
很容易, 但让一个没用过的人就不好写, 那些高手都很懒写BLOG
:
//getip.cpp
#include <windows.h>
#include <iostream>
#include <winsock.h>
#pragma comment(lib, "ws2_32")
using namespace std;
int main()
{
int WSA_return;
WSADATA WSAData;
/*******************************************************************
使用Socket的程序在使用Socket之前必须调用WSAStartup函数。
该函数的第一个参数指明程序请求使用的Socket版本,
其中高位字节指明副版本、低位字节指明主版本;
操作系统利用第二个参数返回请求的Socket的版本信息。
当一个应用程序调用WSAStartup函数时,操作系统根据请求的Socket版本来搜索相应的Socket库,
然后绑定找到的Socket库到该应用程序中。
以后应用程序就可以调用所请求的Socket库中的其它Socket函数了。
该函数执行成功后返回0。
*****************************************************************/
WSA_return=WSAStartup(0x0101,&WSAData);
/* 结构指针 */
HOSTENT *host_entry;
/* 网址: http://www.google.cn/ */
char host_name[256] ="http://www.google.cn/";
if(WSA_return==0)
{
/* 即要解析的域名或主机名 */
host_entry=gethostbyname(host_name);
printf("%s\n", host_name);
if(host_entry!=0)
{
printf("解析IP地址: ");
printf("%d.%d.%d.%d",
(host_entry->h_addr_list[0][0]&0x00ff),
(host_entry->h_addr_list[0][1]&0x00ff),
(host_entry->h_addr_list[0][2]&0x00ff),
(host_entry->h_addr_list[0][3]&0x00ff));
}
}
WSACleanup();
}
vc根据域名获取IP地址 gethostbyname()函数的更多相关文章
- 根据域名获取ip地址gethostbyname
#include <sys/socket.h> #include <stdio.h> #include <netdb.h> int main(int argc, c ...
- iOS根据域名获取ip地址
引入头文件 #include <netdb.h> #include <sys/socket.h> #include <arpa/inet.h> //根据域名获取ip ...
- linux c 网络编程:用域名获取IP地址或者用IP获取域名 网络地址转换成整型 主机字符顺序与网络字节顺序的转换
用域名获取IP地址或者用IP获取域名 #include<stdio.h> #include<sys/socket.h> #include<netdb.h> int ...
- C# 根据域名获取IP地址
今天做海康微视视频接口的时候要用到硬盘录像机的IP地址.端口号.用户名和密码. 但是发现客户IP地址是动态获取的,经常变化. 所以需要根据域名解析出IP. 代码如下 //判断输入的是否是IP Rege ...
- 根据域名获取ip地址
1如何查询网站域名对应的ip地址在电脑左下角搜索cmd ,在命令提示符中输入 ping www.pm25.in在电脑左下角搜索运行,输入cmd ,在命令提示符中输入 ping www.pm25.in得 ...
- 根据域名获取IP地址,并探测是否可达
/* Author :decwang@2014.09.01 Mail :deworks@sina.com*/#define PRINTLOG printf//返回0表示成功,其他为失败. int ge ...
- C++通过域名获取IP地址的方法;调试通过!
BOOL GetIpByDomainName(][],int *nCount) { WSADATA wsaData; ]; HOSTENT *pHostEnt; ; struct sockaddr_i ...
- Java如何根据主机名(域名)获取IP地址?
在Java编程中,如何根据主机名(域名)获取IP地址? 以下示例显示了如何通过net.InetAddress类的InetAddress.getByName()方法将主机名更改为指定的IP地址. pac ...
- asp.net获取访问者ip地址的函数
/// <summary> /// 获取IP地址 /// </summary> public static string IPAddress { get { string us ...
随机推荐
- HTML5.1就要来了
原文来自https://www.w3.org/blog/2016/04/working-on-html5-1/ 总结一下几个点: 1.六个月内,也就是到九月份的时候,HTML5.1会和大家见面. 2. ...
- VS快捷键简单记录
代码上下移动行:Alt+上下键 跳转相等大括号:Ctrl+]
- javascript 横向下拉菜单演示
<html xmlns="http://www.w3.org/1999/xhtml" lang="zh-CN"><head><me ...
- 【原】spring boot在整合项目依赖的问题
最近要开发新的项目,就花了几天时间看了下spring boot的相关资料,然后做了一个demo,不得不说开发效率确实很快,几行注解就完成了事务,aop,数据库等相关配置:但由于先前习惯了spring ...
- Ownership qualifiers of Objective-C: In Details
虽然这里讲的大部分知识以前都看过,但是时不时出现某些点让我如茅塞顿开: 以前经常会忘记一些细节,这篇文章可以更好的理解细节,巩固知识体系. Ownership qualifiers In Object ...
- 关于MooTools你应该熟知的6个基本知识
MooTools是一个精简.模组化同时也面向对象的JavaScript框架,它设计给中等和进阶的JavaScript开发人员使用.使用 MooTools优美.详细而条理分明的API,可让你写出强大.富 ...
- 深入浅出—JAVA(2)
2.类与对象 当你在设计类时,要记得对象是靠类的模型塑造出来的. 1.对象是已知的事物2.对象会执行的动作 对象本身已知的事物被称为 实例变量:它们代表对象的状态.切该类型的每一个对象都会独立的拥有一 ...
- .net运行时和核心类库源码(部分源码)微软官方下载
部分类库代码:http://referencesource.microsoft.com/download.html 运行时clr源码: http://www.microsoft.com/en-us/d ...
- 发布Qt Quick桌面应用程序的方法
这个对话框出现的原因可能是msvcrt.dll在XP这个版本没有vsprintf_s这样的动态库.目前还暂时没有找到好的解决思路,稍后我再单独研究一下,看这个事情该如何解决. 解决办法有很多,我没有一 ...
- Google瓦片地图算法解析
基本概念: 地图瓦片地址:http://mt2.google.cn/vt/lyrs=m@167000000&hl=zh-CN&gl=cn&x=420&y=193& ...