1. 程式人生 > >【程式】Windows下根據計算機名獲取IP地址的C語言程式

【程式】Windows下根據計算機名獲取IP地址的C語言程式

方法一(當指定的裝置不存在時,有可能返回的是本機的IP地址,所以不建議使用):

#include <stdio.h>
#include <WinSock2.h>

#pragma comment(lib, "ws2_32.lib")

// 根據計算機名獲取IP地址
LPIN_ADDR get_computer_ip(const char *name)
{
	struct hostent *ent = gethostbyname(name);
	if (ent != NULL)
		return (LPIN_ADDR)ent->h_addr_list[0];
	else
		return NULL;
}

int main(void)
{
	LPIN_ADDR addr;
	WSADATA wsaData;
	WSAStartup(MAKEWORD(2, 2), &wsaData);
	
	addr = get_computer_ip("STM32F103RE");
	if (addr)
		printf("IP: %s\n", inet_ntoa(*addr));
	else
		printf("Not found!\n");

	WSACleanup();
	return 0;
}

方法二(推薦):

#include <stdio.h>
#include <Ws2tcpip.h>

#pragma comment(lib, "ws2_32.lib")

BOOL get_computer_ip(const char *name, PIN_ADDR addr)
{
	PADDRINFOA info, p;
	PSOCKADDR_IN sockaddr = NULL;

	getaddrinfo(name, NULL, NULL, &info); // 獲取地址資訊
	if (info != NULL)
	{
		// 遍歷地址資訊表
		for (p = info; p != NULL; p = p->ai_next)
		{
			if (p->ai_family == AF_INET)
			{
				// 成功找到IP地址
				sockaddr = (PSOCKADDR_IN)p->ai_addr;
				*addr = sockaddr->sin_addr;
				break;
			}
		}
		freeaddrinfo(info);
	}
	return sockaddr != NULL;
}

int main(void)
{
	IN_ADDR addr; // 表示一個IP地址
	WSADATA wsaData;
	WSAStartup(MAKEWORD(2, 2), &wsaData);

	if (get_computer_ip("STM32F103RE", &addr))
		printf("IP: %s\n", inet_ntoa(addr));
	else
		printf("Not found!\n");

	WSACleanup();
	return 0;
}

程式執行結果:

相關推薦

程式Windows根據計算機獲取IP地址C語言程式

方法一(當指定的裝置不存在時,有可能返回的是本機的IP地址,所以不建議使用): #include <stdio.h> #include <WinSock2.h> #pragm

Linux 如何通過命令僅獲取IP地址

網卡 errors alt oot lin style bytes b- eth0 一同事的朋友正在參加筆試,遇到這麽一個問題讓他幫忙解決,結果同事又找到我幫他搞定。真是感慨:通訊發達在某些方面來說,真不知是不是好事啊!題目大致如下所示,一般我們使用ifconfig查看網卡

WindowsMySQLWindowsMySQL資料庫利用mysqldump定時備份並刪除N天前的備份資料

1.新建.bat檔案 內容如下: rem ******MySQL backup start******** @echo off set "Ymd=%date:~0,4%%date:~5,2%%date:~8,2%" if not exist "D:\backup\%Ymd%" m

djangowindows安裝django,並建立new project

一、 進入:python 退出:exit()    二、 安裝django: 1.解壓官方下載的django-1.10.1 2.在該目錄下,python setup.py install  大概需要1分鐘的時間安裝完成,Django將被安

圖解Windows apache-maven-3.2.3的安裝步驟+maven配置本地倉庫+Eclipse中配置maven

安裝步驟: 1.在安裝maven之前,先確保已經安裝JDK1.6及以上版本,並且配置好環境變數。 3.配置maven3的環境變數:先配置M3_HOME的環境變數,新建一個系統變數:M3_HOME , 路徑是:E:\code\apache-maven-3.2.3

DubbowindowsDubbo安裝及相關配置

DUBBO的介紹部分我這裡就不介紹了,大家可參考官方文件。 DUBBO的註冊中心zookeeper的安裝在上一章節就有,大家可以參考我的安裝過程:http://blog.csdn.net/zsq520520/article/details/72824925    Du

PythonWindows用Jieba分詞和WordCloud庫生成中文詞雲

一、開啟Anaconda Prompt,用activate命令啟用環境 二、從清華映象下載所需庫: jieba分詞庫 wordcloud繪製詞雲庫 numpy常用於處理陣列 PIL為影象處理標準庫 pip install jieba -i https://pypi

pythonwindowspython呼叫cplex

方法源自知乎 https://www.zhihu.com/question/517505101、資料夾複製首先安裝好cplex,開啟cpex路徑,例如C:\Program Files\IBM\ILOG\CPLEX_Studio128\cplex在裡面的python資料夾下進入

轉載Windows徹底解除安裝刪除SQL Serever 2012

對於剛剛涉足資料庫軟體的小白們,肯定會遇到由於下載的資料庫是英文版的,但是又由於自身的英文水平有限,一些專業的英文單詞看的並不是很明白 想著是否能夠將英文的SQL server 2012 漢化,但是由於有中文版的SQL,漢化這件事就很少有人

jdkwindows安裝jdk1.8

1、準備 win10系統,其他windows系統安裝過程大同小異 官網下載jdk1.8 下載地址:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html *

VSCodeWindowsVSCode編譯除錯c/c++更新

————————– 2017.06.10 更新————————- 便攜版已更新,點此獲取便攜版 用於cpptools外掛的配置檔案更新 更新的launch.json // Available variables which can be used inside of strings. // ${work

VSCodeWindowsVSCode編譯執行簡單java

注意:這篇文章內容已經過時,請勿按此文章所介紹方法實踐,浪費時間後果自負。 先看效果: 配置流程: JDK & JRE 的配置(不細講了網上一大堆) VSCode的下載安裝以及外掛c

windowsMinGW-w64安裝

MinGW分為較早開發的MinGW32和之後為編譯64位程式開發的MinGW-w64,MinGW32只能編譯32位的程式,而mingw64不僅能編譯64位程式,也能編譯32位程式,還能進行交叉編譯,即在32位主機上編譯64位程式,在64位主機上編譯32位程式。 一

配置windows配置tomcat和zookeeper為服務

最近在電腦上配置dubbo的環境,由於使用的windows的系統,所以想讓dubbo控制檯和依賴的zookeeper都常駐系統後臺,並且在我開機的時候能夠啟動,這就不得不讓我想到了吧他們作為系統的服務來啟動,這樣系統在開機的時候就可以自動執行這些服務了。一、tomcat配置為

VSCodeWindowsVSCode編譯除錯c/c++

本文轉自:http://blog.csdn.net/c_duoduo/article/details/51615381 本人根據自己的操作,修改了一些細節,用於C語言除錯。 ————————– 以下是原文 ————————- 這篇文章為blackkitty記錄在w

網路Windows的ping指令

ping指令 ping表示因特網包探索器,主要用來檢測網路是否【連通】 主要用法: ping空格ip地址 基礎用法 (1)利用 /? 來查詢使用 如圖所示,ping命令可以加很多引數來使用 (2)ping 127.0.0.1 我們不加引數,直接ping 127.0.0.

Javawindows直接運行Java程序(利用bat運行jar文件)

變量 註冊表 r文件 語言 col bat文件 語句 get bat 這種方法只是掩耳盜鈴,簡化了運行jar的方式。並不是將Java代碼打包成了exe文件。 具體步驟為,電腦上有JRE環境,然後利用bat文件包裝一下運行jar的控制臺語句,最後用C語言打包成exe文件。

Luawindows安裝和使用LuaJIT步驟

1.準備 2) 確保你的機器上安裝了visual studio 2.編譯 1) 開啟visual studio,依次開啟 “工具” >> “visual studio 命令提示”視窗 2) 在命令視窗輸入“cd /d <path>\src

記錄WindowsDNW和uboot燒寫

準備 uboot在NORFLASH中,所以先設定設定撥碼開關,選擇NORFLASH啟動 開啟SecureCRT,用於操作uboot,檢視串列埠資訊 開啟DNW工具,傳送檔案 燒寫 重啟板卡

TensorflowWindows基於Anaconda的Tensorflow環境配置

1. Anaconda下載安裝:https://www.continuum.io/downloads 版本為:Anaconda3,for windows,64bit(tensorflow在windows下只支援python 3.5以上、amd64) 2. Anaconda