如何用C語言獲得本機IP地址?(獲取一個ip或者獲取所有ip)
我們可以在cmd中敲入ipconfig來獲取本機ip地址,下面寫個程式來獲取本機ip地址(結果相同):
#include<stdio.h> #include<winsock2.h> #pragma comment(lib,"ws2_32.lib") // 靜態庫 void findIP(char *ip, int size) { WORD v = MAKEWORD(1, 1); WSADATA wsaData; WSAStartup(v, &wsaData); // 載入套接字型檔 struct hostent *phostinfo = gethostbyname(""); char *p = inet_ntoa (* ((struct in_addr *)(*phostinfo->h_addr_list)) ); strncpy(ip, p, size - 1); ip[size - 1] = '\0'; WSACleanup( ); } int main() { char ip[20] = {0}; findIP(ip, sizeof(ip)); printf("%s\n", ip); return 0; }
上面的程式僅僅獲取一個ip, 那要獲取所有ip, 怎麼辦呢? 很簡單, 充分利用上面的list啊, 如下:
#include<stdio.h> #include<winsock2.h> #pragma comment(lib,"ws2_32.lib") // 靜態庫 void getIPs() { WORD v = MAKEWORD(1, 1); WSADATA wsaData; WSAStartup(v, &wsaData); // 載入套接字型檔 int i = 0; struct hostent *phostinfo = gethostbyname(""); for(i = 0; NULL != phostinfo&& NULL != phostinfo->h_addr_list[i]; ++i) { char *pszAddr = inet_ntoa(*(struct in_addr *)phostinfo->h_addr_list[i]); printf("%s\n", pszAddr); } WSACleanup( ); } int main() { getIPs(); return 0; }
相關推薦
windows和linux環境中分別如何用C語言獲得本機IP地址?
一、Windows情形 我們可以在cmd中敲入ipconfig來獲取本機ip地址,下面寫個程式來獲取本機ip地址(結果相同): #include<stdio.h> #include<winsock2.h>
如何用C語言獲得本機IP地址?(獲取一個ip或者獲取所有ip)
我們可以在cmd中敲入ipconfig來獲取本機ip地址,下面寫個程式來獲取本機ip地址(結果相同): #include<stdio.h> #include<win
【程式設計之美】用C語言實現狀態機(實用)
版權宣告:本文為博主原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處連結和本宣告。 本文連結:https://www.cnblogs.com/lihuidashen/p/11510532.html https://mp.weixin.qq.com/s/xDAfaEFY
用C語言求一元二次方根(包括虛根)
#include <stdio.h> #include <math.h> float a,b,c,result; void underZero(){ float part1 = (-1)*b/(2*a); float part2
用C語言輸出自身的程式原始碼(Quine)
Quine 在計算機中指的是把自身程式碼輸出的程式,非常有趣。其實這種程式沒有唯一。其實有很多種。下面就列出來幾種。 1、 main(){char *c="main(){char *c=%c%s%c;printf(c,34,c,34);}";printf(c,3 4,c
VS下用C++實現的簡單3D射擊遊戲(附遊戲檔案與源工程程式碼)
記不得什麼時候開始感興趣寫遊戲程式碼了。開始的時候就只是寫一些簡單的小遊戲,打檯球,開小車,走迷宮,用一些2Dgraphics庫,完成每個小作品後都很開心。後來一想,在現在的計算機裝置條件下,2D太簡陋了,於是開始著手做一個3D賽車遊戲。說是賽車,實際上也就只有一輛小車。模
iOS獲取裝置IP地址(WiFi,蜂窩資料兩種情況)
以下列舉出iOS下獲取IP地址的常用的兩種方式: 第一種適合在WiFi情況下使用,但是如果切換到蜂窩資料下,則返回資料@“error” 直接呼叫getIPAddress 方法即可: #import <ifaddrs.h> #import <arpa/
c#中如何獲取本機MAC地址、IP地址、硬盤ID、CPU序列號等系統信息
finall ipaddress reac 地址 computer mod urn aca rop public class Computer { public static string CpuID; //1.cpu序列號 pub
【C#學習筆記】獲得本機IP
tostring class main style dns system pad space ipad using System; using System.Net; namespace ConsoleApplication { class Prog
Java 網路程式設計(1):使用 NetworkInterface 獲得本機在區域網內的 IP 地址
原文地址:https://segmentfault.com/a/1190000007462741 1、問題提出 在使用 Java 開發網路程式時,有時候我們需要知道本機在區域網中的 IP 地址。很常見的一種做法是呼叫本地命令(比如 Windows 上的 ipconfig 命令和 Li
c#中如何獲取本機MAC地址、IP地址、硬碟ID、CPU序列號等系統資訊
我們在利用C#開發桌面程式(Winform)程式的時候,經常需要獲取一些跟系統相關的資訊,例如使用者名稱、MAC地址、IP地址、硬碟ID、CPU序列號、系統名稱、實體記憶體等。 首先需要引入名稱空間: using System.Management;
shell 腳本創建虛擬機 並配置網卡ip地址(兩個腳本)
kvm#######################腳本1:創建虛擬機kvm##########################!/bin/bashqcow2_dir=/var/lib/libvirt/imagesread -p "請輸入虛擬機號碼:" num #主機號if [ $n
獲取本機的ip地址(排除虛擬機,藍牙等ip)
運行 exception play pla 過濾 contains network localhost static 項目中遇到了要獲取本地ip的需求,網上查找資料遇到很多坑,很多Java獲取本機ip地址的方法要麽是根本獲取不到,要麽是獲取的有問題。 網上常見的方法如下 I
Java獲取本機名稱、本機MAC地址、IP地址
Java獲取本機名稱、本機MAC地址、IP地址 public class Test { public static void main(String[] args) throws Exception { InetAddre
java如何獲得本機IP
public String getLocalIp(){ InetAddress inetAddress=InetAddress.getLocalHost(); String ip=inetAddress.getHostAddress().toString
(轉)用VC獲取本機MAC地址
環境:w2k + vc6.0 說明:這裡只能獲得MAC地址。 #include "stdafx.h"#include <stdio.h> #include <stdlib.h> #include <httpext.h>
批處理--工作當中獲取本機ip地址然後執行一個迴圈啟動指令碼
goto :main rem +++++++獲取本機ip++++++++++++++++++++++++++++++++++++ :get_local_ip rem 注意 不要照搬某些人的文章,如果你把函式寫成setlocal dosomething endlocal 這種結構,那麼在這段程式碼中
獲得本機ipv4和ipv6地址(即有線網絡卡地址)
程式原始碼如下: 1. 形參ipv4, ipv6為外部呼叫者傳入,用來儲存ipv4地址和ipv6地址, 2. MAX_PATH為自定義巨集, 為數值260, IPVN_SIZE為數值50, DEFAULT_STR_PORT為字串"8080" 3. 需在標頭檔案中包含以下內容
linux下使用ioctl() 獲取本機mac地址、ip地址等等
在linux下,我們知道可以通過ifconfig獲取mac地址和ip地址等相關資訊,但是如果要使用gcc程式實現的話,我們就需要使用到系統所提供的一個函式ioctl(),iotec函式是對裝置的i/o通道進行管理的函式。由於這個函式用途比較多,如果要學習可以參
用VC獲取本機MAC地址
環境:w2k + vc6.0 說明:這裡只能獲得MAC地址。 #include "stdafx.h"#include <stdio.h> #include <stdlib.h> #include <httpext.h