C++獲取本機所有ip地址,可區分類型是有線無線虛擬機還是回環

一個小程序,可以獲取本地所有ip地址,包括有線,無線,虛擬機,環回接口網卡,等。

如圖,一臺機器多個網卡:
這里寫圖片描述
程序執行結果:
這里寫圖片描述


#include"stdio.h"
#include"string.h"
#include"Winsock2.h"
#pragma comment(lib,"WS2_32.lib")void main()
{   printf("********************************\n");printf("方法一,精確輸出\n");WSADATA wsaData;if(WSAStartup(MAKEWORD(2,2),&wsaData)==SOCKET_ERROR){exit(0);}int nLen=256;char hostname[20];gethostname(hostname,nLen); hostent *pHost = gethostbyname(hostname);LPSTR lpAddr = pHost->h_addr_list[0];struct in_addr inAddr;memmove(&inAddr,lpAddr,4);printf("有  線  IP地址:%s\n",inet_ntoa(inAddr));memmove(&inAddr,lpAddr+4,4);printf("無  線  IP地址:%s\n",inet_ntoa(inAddr));memmove(&inAddr,lpAddr+8,4);printf("環  回  IP地址:%s\n",inet_ntoa(inAddr));memmove(&inAddr,lpAddr+12,4);printf("虛擬機1 IP地址:%s\n",inet_ntoa(inAddr));memmove(&inAddr,lpAddr+16,4);printf("虛擬機2 IP地址:%s\n",inet_ntoa(inAddr));printf("********************************\n\n");printf("********************************\n");printf("方法二,打印所有Ip,驗證第一次輸出\n");char szHost[256] = {0};hostent *lpHost = gethostbyname(szHost);memset(szHost,0,sizeof(szHost));// 取得本地主機名稱::gethostname(szHost, 256);// 通過主機名得到地址信息// 打印出所有IP地址in_addr addr;for(int i = 0; ; i++){char *p = lpHost->h_addr_list[i];if(p == NULL)break;memcpy(&addr.S_un.S_addr, p, lpHost->h_length);char *szIp = ::inet_ntoa(addr);//將32位的二進制數轉化為字符串;printf("本機IP地址:%s \n", szIp);}printf("********************************\n");::WSACleanup();
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/448239.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/448239.shtml
英文地址,請注明出處:http://en.pswp.cn/news/448239.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

頓悟人生十一句話

一、永遠不要埋怨你已經發生的事情 如果你打算忍受一件事情就閉上嘴巴吧。要么就改變它,要么就安靜的接受它。 二、最讓你忿忿不平的問題,就是你需要解決的問題 一個被酒后駕駛的司機撞死自己兒子的婦女,發起了反對酒后駕駛母親協會…

Mybatis 在 IDEA 中使用 generator 逆向工程生成 pojo,mapper

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。 使用mybatis可以逆向生成pojo和mapper文件有很多種方式,我以前用的是mybtais自帶的generator包來生成,連接如下&…

控制臺程序隱藏方法總結(四種)

學習計算機,往往先從Windows環境下學習編程,學習編程,往往從C學起,學習C,往往又從控制臺程序學習,何為控制臺,就是那個黑框白字的界面。對于這樣一個最初認為奇陋無比而現在認為無所不能的編程平…

十大教養,讓你氣度非凡!

01.守時 無論是開會、赴約,有教養的人從不遲到。他們懂得,即使是無意遲到,對其他準時到場的人來說,也是不尊重的表現。 02.談吐有節 注意從不隨便打斷別人的談話,總是先聽完對方的發言,然后再去反駁或者補…

mybatis :Criteria 查詢、條件過濾用法

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。 PS:hibernate 中也有 Criteria 的用法,見另一文章:jpa : criteria 作排除過濾、查詢 1. 包&#xf…

C++11多線程----線程管理

說到多線程編程,那么就不得不提并行和并發,多線程是實現并發(并行)的一種手段。并行是指兩個或多個獨立的操作同時進行。注意這里是同時進行,區別于并發,在一個時間段內執行多個操作。在單核時代&#xff0…

揭秘賺錢的技巧,學會讓錢自己進來

學習把負債變為資產 貧窮是一種習慣,而不只是口袋里金錢的多寡。 每個人每天的時間是相同的,有人利用它來打工,賺取約80新臺幣的工資。也有人將時間用來教書,每小時賺取約500新臺幣,也有人用這些時間來上網&#xff0c…

Shell編程入門基礎上

前言 為什么學 Shell Shell 腳本語言是實現 Linux/UNIX 系統管理及自動化運維所必備的重要工具, Linux/UNIX 系統的底層及基礎應用軟件的核心大都涉及 Shell 腳本的內容。每一個合格 的Linux 系統管理員或運維工程師,都需要能夠熟練地編寫 Shell 腳本語言…

寶寶不開心 : 減肚子大戰進行中、持續更新,看看一個月后能不能把腰瘦下來 ...

公司研發中心離家很近,于是來這邊后就天天回家吃吃、喝喝、睡睡 ... 中午一個半小時休,吃完就滾上床鋪:睡午覺,就這樣 天天過得好不愜意 ... // 每周也會發零售,大家都吃得樂呵呵的,晚上加班都是組上好些個…

內存問題提醒!結構體+protobuf做協議體發送!序列化

內存的三種分配方式: 1. 從靜態存儲區分配:此時的內存在程序編譯的時候已經分配好,并且在程序的整個運行期間都存在。全局變量,static變量等在此存儲。 2. 在棧區分配:相關代碼執行時創建&…

窮人邁向富翁的理財十步曲

當你每日的儲蓄隨著時間的累積,達到一定數量后再轉存到存款薄里,如此日積月累,就可以逐漸養成自身存錢理財的習慣。不管你做什么事情,是否養成了良好的習慣,都會決定你的成敗。理財投資也是同樣道理,在你養…

【融云分析】選擇IM云服務,需要看哪些核心技術指標?

IM(即時通訊)云服務已發展數年,不少企業與開發者都傾向于選擇第三方IM云服務,短平快地為應用添加即時通訊能力,但如何選擇服務商卻是個難題,單從簡單的功能介紹來看無法判斷,因為IM云服務接入后…

Nginx 配置詳解

序言 Nginx是lgor Sysoev為俄羅斯訪問量第二的rambler.ru站點設計開發的。從2004年發布至今,憑借開源的力量,已經接近成熟與完善。 Nginx功能豐富,可作為HTTP服務器,也可作為反向代理服務器,郵件服務器。支持FastCGI…

protocol buffers使用說明

一、什么是protocol buffers Protocol buffers是一個靈活的、高效的、自動化的用于對結構化數據進行序列化的協議,與XML相比,Protocol buffers序列化后的碼流更小、速度更快、操作更簡單。你只需要將要被序列化的數據結構定義一次(譯注:使用…

jeeCMS首頁加載流程

版權聲明:本文為博主原創文章,未經博主允許不得轉載。 https://blog.csdn.net/gyshun/article/details/79669293 如果JEECMS部署完畢之后,在瀏覽器中輸入http://localhost:8080/jeecms,系統直接會按照以下步驟執行: 首…

車子突然溜坡追尾 駕校教練說掛P擋拉手剎不會溜坡

昨天4:44,朱先生來電:剛才登云路一個燒烤店門口,一輛車停在自己的車位上的,不知什么原因,突然溜坡撞上前面的一輛出租車。稀奇的是,這個溜坡的駕駛員全程都是車上睡覺睡著的,什么都不知道。記者…

VSCode 漢化、設置為 中文語言顯示 、中文界面

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。 Vscode是一款開源的跨平臺編輯器。默認情況下,vscode使用的語言為英文(us),如何將其顯示語言修改成中文了&#…

c++執行vbs腳本

#include<fstream> using namespace std;int main() {fstream out("StartIE.vbs",ios::out);out<<"AppName\"啟動IE\"\n\Set WshellWScript.CreateObject(\"WScript.Shell\")\n\Set ieWScript.CreateObject(\"InternetEx…

Python-21-socket編程

一、基礎知識 1. C/S架構 C/S架構即客戶機/服務器模式。 它可以分為客戶機和服務器兩層&#xff1a; 第一層: 在客戶機系統上結合了界面顯示與業務邏輯&#xff1b; 第二層: 通過網絡結合了數據庫服務器。 簡單的說就是第一層是用戶表示層&#xff0c;第二層是數據庫層。 這里…

解決:VScode 漢化后 、設置中文后 還顯示英文的問題

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 按f1 搜索 Configore Display Language 設置 zh-cn 關閉軟件重啟。 如果重啟菜單等還是英文的&#xff0c;在商店查看已安裝的插件&…