| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2322 人关注过本帖
标题:请问如何用VC++获取本机的ip地址
只看楼主 加入收藏
江湖未冷
Rank: 1
等 级:新手上路
帖 子:140
专家分:0
注 册:2008-9-20
结帖率:100%
收藏
 问题点数:0 回复次数:6 
请问如何用VC++获取本机的ip地址
最好能给出源程序。。
搜索更多相关主题的帖子: 地址 获取 
2008-10-10 22:50
江湖未冷
Rank: 1
等 级:新手上路
帖 子:140
专家分:0
注 册:2008-9-20
收藏
得分:0 
这是我从一本黑客书上看到的程序
可是不能运行啊。。为什么。。哪儿出错了。。。
#include"stdafx.h"
#include"windows.h"
#include<winsock.h>
#include"stdio.h"
#include"stdlib.h"
#include"string.h"
void CheckIP(void)
//定义CheckIP()函数,用于获取本机ip地址
{
    WORD wVersionRequested;
    //WORD类型变量,用于存放Winsock版本的正确值
    WSADATA wsaData;
    char name[255];
    //定义用于存放获得的主机名的变量
    CString ip;
    //定义ip地址变量
    PHOSTENT hostinfo;
    wVersionRequested=MAKEWORRD(2,0);
    if(WSAStartup(wVersionRequested,&wsaData)==0)
    {
        if(gethostname(name,sizeof(name))==0)
        {
            if((hostinfo=gethostbyname(name))!=NULL)
            {
                LPCSTR ip=inet_ntoa(*(struct in_addr *)*hostinfo->h_addr_list);
                printf("%s\n",ip);
            }
        }
        WSACleanup();
    }
}
int main(int argc,char *argv[])
{
    CheckIP();
    return 0;
}
2008-10-10 22:52
koma0769
Rank: 2
等 级:论坛游民
帖 子:24
专家分:20
注 册:2008-10-8
收藏
得分:0 
#include "winsock2.h"
#pragma comment( lib, "ws2_32" )
const char* get_first_ip(void)
{
  char szHostName[128];
  const char* pszAddr = NULL;
  struct hostent * pHost;
  int i;
  WSADATA wsaData;
  WSAStartup(0x202, &wsaData );
  if( gethostname(szHostName, 128) == 0 )
  {
    pHost = gethostbyname(szHostName);
    for( i = 0; pHost!= NULL && pHost->h_addr_list[i]!= NULL; i++ )     
    {/*对每一个IP地址进行处理*/
       pszAddr = inet_ntoa (*(struct in_addr *)pHost->h_addr_list[i]);
    break;
    }
  }
  WSACleanup();
  return pszAddr;
}
2008-10-11 11:51
江湖未冷
Rank: 1
等 级:新手上路
帖 子:140
专家分:0
注 册:2008-9-20
收藏
得分:0 
谢谢啊。。。。
我后边有找到一个程序。。也可以。。虽然不是太懂。。
#include<stdio.h> //头文件
#include<winsock2.h>
#pragma comment(lib,"ws2_32.lib")
void CheckIP(void)
{
WSADATA wsaData;
char name[155];
char *ip;
PHOSTENT hostinfo;
if ( WSAStartup( MAKEWORD(2,0), &wsaData ) == 0 ) {
if( gethostname ( name, sizeof(name)) == 0) {
if((hostinfo = gethostbyname(name)) != NULL) { //这些就是获得IP的函数
ip = inet_ntoa (*(struct in_addr *)*hostinfo->h_addr_list);

printf("%s\n",ip);
}
}
WSACleanup( );
} }

int main(void)
{
CheckIP();
return 0;
}
2008-10-11 13:41
xiao121924249
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2008-10-15
收藏
得分:0 
回帖是一种美德!传说每次回帖即可获得 10 分可用积分!
2008-10-15 10:43
xiao121924249
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2008-10-15
收藏
得分:0 
回帖是一种美德!传说每次回帖即可获得 10 分可用积分!
2008-10-15 10:43
lylyxt
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2006-11-27
收藏
得分:0 
部分宏定义和函数未接触过,看看

2008-10-15 15:10
快速回复:请问如何用VC++获取本机的ip地址
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.025636 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved