程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 如何用C++編程獲得某台機器的IP地址?

如何用C++編程獲得某台機器的IP地址?

編輯:C++入門知識

本文提供的方法是一個比較完整的解決方案,並附有詳細的實現細節。其實,如果你熟悉Windows的Sockets API,並了解一些底層的Winsock知識。那麼要獲得某台機器的IP地址並不是什麼難事。一台機器可以裝多塊網卡,因此它就可能有多個IP地址。目前很多發燒友的PC機都裝有多塊網卡。其中一塊網卡與調制解調器(MODEM)或者ADSL適配器相連,另一塊與家裡的局域網(LAN)相連。對於有寬帶連接條件的家庭,這更是一種典型的配置。任何事情,一旦你知道了解決的方法,一切都會變得如此簡單。下面是本文提供的一個簡單的控制台程序(程序名為getip1),其功能就是顯示本機的IP地址。如圖一所示:

圖一 getip1的運行畫面

下面是 getip1 程序的代碼,很簡單:

////////////////////////////////////////////////////////////////
// getip1.cpp
//
// 本程序報告本機上每一塊網卡的IP地址
// 命令行編譯命令為:
//
// cl getip1.cpp wsock32.lib
//
// 請一定要在環境變量中正確指定LIB庫的路徑;可以運行vcvars32.bat
//
#include <winsock.h>
#include <wsipx.h>
#include <wsnwlink.h>
#include <stdio.h>
 
int main()
{
////////////////
// 初始化 Windows sockets API. 要求版本為 version 1.1
//
WORD wVersionRequested = MAKEWORD(1, 1);
WSADATA wsaData;
if (WSAStartup(wVersionRequested, &wsaData)) {
printf("WSAStartup failed %s
", WSAGetLastError());
return -1;
}
 
//////////////////
// 獲得主機名.
//
char hostname[256];
int res = gethostname(hostname, sizeof(hostname));
if (res != 0) {
		
		
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved