取得IP地址

原创 2005年05月27日 15:36:00

#include <iostream.h>
#include <winsock2.h>

#pragma comment(lib,"Ws2_32")

char* getIPAddrbyName(char* name)
{
 hostent* hostIP;
 WSADATA wsd;
 char *IPAddr, *PtrAddr;
 struct in_addr inAddr;
 if(WSAStartup(MAKEWORD(2,2),&wsd)!=0)
 {
  cout<<"套接字初始化失败"<<endl;
  return NULL;
 }
 hostIP = gethostbyname(name);
 if (WSAGetLastError() != 0)
 {
  if (WSAGetLastError() == 11001)
  {
   cout<<"主机没有找到"<<endl;;
   return NULL;
  }
 }
 else
 {
  inAddr.S_un.S_addr = *((unsigned long *)hostIP->h_addr_list[0]);
  PtrAddr = inet_ntoa(inAddr);
  WSACleanup();
  IPAddr = new char[strlen(PtrAddr)+1];
  strcpy(IPAddr, PtrAddr);
 }
 return IPAddr;
}
void main()
{
 char buffer[1024];
 char* IPName;
 cout<<"please input the name which you want to get IPAddress:"<<endl;
 cin>>buffer;
 IPName = buffer;
 IPName = getIPAddrbyName(IPName);
 if(IPName != NULL)
 cout<<"IP is "<<IPName<<endl;
}

//////////////////////根据IP地址得到机器名称////////////////////////////////////////////////
//----------------------
// Declare and initialize variables
hostent* remoteHost;
char* host_name;
unsigned int addr;

//----------------------
// User inputs name of host
printf("Input name of host: ");
host_name = (char*) malloc(sizeof(char*)*16);
fgets(host_name, 16, stdin);

// If the user input is an alpha name for the host, use gethostbyname()
// If not, get host by addr (assume IPv4)
if (isalpha(host_name[0])) {   /* host address is a name */
  host_name[strlen(host_name)-1] = '/0'; /* NULL TERMINATED */
  remoteHost = gethostbyname(host_name);
}
else  {
  addr = inet_addr(host_name);
  remoteHost = gethostbyaddr((char *) &addr, 4, AF_INET);
}

if (WSAGetLastError() != 0) {
  if (WSAGetLastError() == 11001)
  printf("Host not found.../nExiting./n");
}
else
  printf("error#:%ld/n", WSAGetLastError());

// The remoteHost structure can now be used to
// access information about the host

//----------------------
// Declare and initialize variables
hostent* remoteHost;
char* host_name;
unsigned int addr;

//----------------------
// User inputs name of host
printf("Input name of host: ");
host_name = (char*) malloc(sizeof(char*)*16);
fgets(host_name, 16, stdin);

// If the user input is an alpha name for the host, use gethostbyname()
// If not, get host by addr (assume IPv4)
if (isalpha(host_name[0])) {   /* host address is a name */
  host_name[strlen(host_name)-1] = '/0'; /* NULL TERMINATED */
  remoteHost = gethostbyname(host_name);
}
else  {
  addr = inet_addr(host_name);
  remoteHost = gethostbyaddr((char *) &addr, 4, AF_INET);
}

if (WSAGetLastError() != 0) {
  if (WSAGetLastError() == 11001)
  printf("Host not found.../nExiting./n");
}
else
  printf("error#:%ld/n", WSAGetLastError());

// The remoteHost structure can now be used to
// access information about the host
//////////////////根据socket取得IP地址/////////////////////////////////////////

 ::getpeername(s, &ipAddr, &Len);

如何用JAVA程序取得IP地址

  • 2014年05月22日 21:33
  • 108KB
  • 下载

根据IP取得所在地址2

  • 2012年02月10日 14:49
  • 8.79MB
  • 下载

【VS开发】从sockaddr中取得客户端或者数据源的Ip地址和端口号

在socket编程中,服务器端accept()等待一个客户端的连接,当连接成功后,accept拷贝客户端的地址信息到sin_addr里面,我们如何从sin_addr取得此客户端的Ip地址和端口号呢? ...

PB 12取得IP地址

  • 2011年11月04日 16:51
  • 25KB
  • 下载

取得本地IP地址与机器名

  • 2009年06月08日 16:03
  • 258KB
  • 下载

根据IP取得所在地址

using System.Web; using System.IO; using System.Text; using System.Text.RegularExpressions; ///...
  • wym3587
  • wym3587
  • 2012年02月10日 14:54
  • 414

取得网卡的ip和mac地址

#include #include #include #include #include #include #include #include #include #...
  • gexiao
  • gexiao
  • 2015年10月19日 10:39
  • 180

getaddrinfo简单应用——取得IP地址

转自:http://blog.chinaunix.net/uid-24567872-id-87645.html     getaddrinfo提供独立于协议的名称解析 函数原型:     ...

getaddrinfo简单应用——取得IP地址

getaddrinfo提供独立于协议的名称解析 函数原型:        #include sys/types.h>        #include sys/socket.h...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:取得IP地址
举报原因:
原因补充:

(最多只允许输入30个字)