c、c++混编实现查询本地IP地址
一、思路
1、要想得到本地IP地址,可以通过本机名来查询,所以首先得得到本机名。
2、牵涉到IP地址,首先想到牵涉到网络协议,因此得加载套接字协议,所以先使用WSAStartup函数完成对Winsock服务的初始化。
二、步骤
三、实现程序的模块化
1、包含文件工作
#include <iostream.h>
#include <winsock2.h>
#include <windows.h>
#pragma comment(lib,"ws2_32.lib") bool GetLocalAddr();
2、网络协议初始化工作
WSADATA wsaData;
WORD wVersionRequested;
wVersionRequested = MAKEWORD(,);
int initWSA = WSAStartup(wVersionRequested,&wsaData);
3、通过主机名来获取本地连接的IP地址
if ( == initWSA)
{
cout << "初始化完成!" << endl; // 获取主机名
char hostName[];
int iRet = gethostname(hostName,sizeof(hostName));
if (iRet != )
{
cout << "获取主机名失败!" << endl;
return false;
} // 通过主机名获取地址
//
hostent *hostInfo;
hostInfo = gethostbyname(hostName);
if (NULL == hostInfo)
{
cout << "通过主机名获取地址失败!" << endl;
return false;
} // 将网络地址转换成字符串,以便观看
char *IPAddr;
IPAddr = inet_ntoa(*(struct in_addr *)*hostInfo->h_addr_list);
cout << IPAddr << endl; // 卸载Winsock库,并释放所有资源
WSACleanup(); return true;
}
else
return false;
四、完整的程序
#include <iostream.h>
#include <winsock2.h>
#include <windows.h>
#pragma comment(lib,"ws2_32.lib") bool GetLocalAddr(); int main(void)
{
GetLocalAddr();
return ;
} bool GetLocalAddr()
{
// 初始化Winsock库
WSADATA wsaData;
WORD wVersionRequested;
wVersionRequested = MAKEWORD(,);
int initWSA = WSAStartup(wVersionRequested,&wsaData); if ( == initWSA)
{
cout << "初始化完成!" << endl; // 获取主机名
char hostName[];
int iRet = gethostname(hostName,sizeof(hostName));
if (iRet != )
{
cout << "获取主机名失败!" << endl;
return false;
} // 通过主机名获取地址
hostent *hostInfo;
hostInfo = gethostbyname(hostName);
if (NULL == hostInfo)
{
cout << "通过主机名获取地址失败!" << endl;
return false;
} // 将网络地址转换成字符串,以便观看
char *IPAddr;
IPAddr = inet_ntoa(*(struct in_addr *)*hostInfo->h_addr_list);
cout << IPAddr << endl; // 卸载Winsock库,并释放所有资源
WSACleanup(); return true;
}
else
return false;
}
c、c++混编实现查询本地IP地址的更多相关文章
- 查询本地ip以及ip地址库查询
四种方法查询本地ip from urllib2 import urlopen from json import load my_ip = urlopen('http://ip.42.pl/raw'). ...
- 获取本地IP地址信息
2012-06-05 /// <summary> /// 获取本地IP地址信息 /// </summary> void G ...
- 获取Mac、CPUID、硬盘序列号、本地IP地址、外网IP地址OCX控件
提供获取Mac.CPUID.硬盘序列号.本地IP地址.外网IP地址OCX控件 开发语言:vc++ 可应用与WEB程序开发应用 <HTML><HEAD><TITLE> ...
- python获取本地ip地址的方法
#_*_coding:utf8_*_ #以下两种方法可以在ubuntu下或者windows下获得本地的IP地址 import socket # 方法一 localIP = socket.gethost ...
- C# — 动态获取本地IP地址及可用端口
1.在VS中动态获取本地IP地址,代码如下: 2.获取本机的可用端口以及已使用的端口:
- Android 获得本地IP地址、外网IP地址、本设备网络状态信息、本地Mac地址
本地内网IP和外网IP的区别: 根据我的经验一台电脑需要两个ip才可以上网,一个是本地的内网ip 一个是外网的ip 本地的ip 一般是192.168.1.2这种样子 只要在不同的路由器上可以重复 外 ...
- .net获取本地ip地址
整理代码,.net获取本地ip地址,代码如下: string name = Dns.GetHostName(); IPHostEntry IpEntry = Dns.GetHostEntry(name ...
- 获取本地IP地址的vc代码
作者:朱金灿 来源:http://blog.csdn.net/clever101 获取本地IP地址有两种做法.一种是使用gethostname函数,代码如下: bool CSocketComm::Ge ...
- 读取本地IP地址和子网页码
#region 读取本地IP地址和子网页码 //读取本地IP地址和子网页码 NetworkInterface[] nics = NetworkInterface.GetAllNetworkInterf ...
随机推荐
- CUDA编程-(2)其实写个矩阵相乘并不是那么难
程序代码及图解析: #include <iostream> #include "book.h" __global__ void add( int a, int b, i ...
- POJ 3074 Sudoku (Dacing Links)
推荐一个写数独很好的博客:http://www.cnblogs.com/grenet/p/3163550.html 主要是把九宫格里的元素换到矩阵里面再求解dancing links 网上找的一模版 ...
- 《使用wxWidgets进行跨平台程序开发》chap02——一个简单的应用程序
// Name: minimal.cpp // Purpose: Minimal wxWidgets sample // Author: Julian Smart #include "wx/ ...
- SecureCRT 实用配置
SecureCRT,是一款支持 SSH2.SSH1.Telnet.Telnet/SSH.Relogin.Serial.TAPI.RAW 等协议的终端仿真程序,最吸引我的是,SecureCRT 支持标签 ...
- LabSharp莱博夏普简介
莱博夏普提供实验室信息化解决方案,为实验室提供LIMS系统建设方案咨询,并为中小型LIMS系统供应商提供系统解决方案咨询.
- iOS开发总结-UITableView 自定义cell和动态计算cell的高度
UITableView cell自定义头文件:shopCell.h#import <UIKit/UIKit.h>@interface shopCell : UITableViewCell@ ...
- android中数据存储
android中数据存储 Android 中存储数据的方式有五种:SQLite数据库.文件存储.内容提供者.网络.SharedPreferences(Key----value)五种存储方式. ...
- 经典SQL语句大全之数据开发
数据开发 1.按姓氏笔画排序:Select * From TableName Order By CustomerName Collate Chinese_PRC_Stroke_ci_as //从少到多 ...
- [TypeScript] Understanding Decorators
Decorators are a feature of TypeScript that are becoming more and more common in many major librarie ...
- 从robots.txt開始网页爬虫之旅
做个网页爬虫或搜索引擎(下面统称蜘蛛程序)的各位一定不会陌生,在爬虫或搜索引擎訪问站点的时候查看的第一个文件就是robots.txt了.robots.txt文件告诉蜘蛛程序在server上什么文件是能 ...