如何获得本地IP和MAC地址时c

可能重复:
Linux的/ C ++:获取本地计算机的IP地址

我试图让所有接口的我的本地计算机的IP 地址和MAC地址 ,但我真的不能成功。 我需要得到它在一起,所以我知道它的IP属于哪个MAC。

我经历了很多搜索对谷歌,甚至在这里了,但我真的不能找到这样的C代码。

你可以帮我吗?

提前致谢! 我会很感激的!

--------------解决方案-------------

刚刚发现这是工作:

#include <sys/types.h>
#include <sys/socket.h>
#include <sys/ioctl.h>
#include <net/if.h>
#include <stdio.h>
#include <string.h>

void mac_eth0(unsigned char MAC_str[13])
{
#define HWADDR_len 6
int s,i;
struct ifreq ifr;
s = socket(AF_INET, SOCK_DGRAM, 0);
strcpy(ifr.ifr_name, "eth0");
ioctl(s, SIOCGIFHWADDR, &ifr);
for (i=0; i<HWADDR_len; i++)
sprintf(&MAC_str[i*2],"%02X",((unsigned char*)ifr.ifr_hwaddr.sa_data)[i]);
MAC_str[12]='';
}

int main(int argc, char *argv[])
{
unsigned char mac[13];

mac_eth0(mac);
puts(mac);

return 0;
}

在相对 ​​近期版本的Linux,你可以阅读的内容/sys/class/net/eth0/address (用于取代任何网络接口的名称eth0 )来获取接口的硬件地址。

你可以使用SIOCGIFADDR的ioctl的MAC地址,请上网:http://davmac.org/davpage/linux/networking.html

完整的例子可以在这里找到:http://www.linuxquestions.org/questions/programming-9/linux-determining-mac-address-from-c-38217/

在本地计算机上? 既然是linux下的标记,打开一个终端,并输入ifconfig -a。 这一切显示所有接口上的信息在您的本地网络,你的IP是在INET列地址执行的HWaddr就是MAC地址。 对于外部IP,你必须使用脚本来获取它。

编辑:点击这里使用它的C程序

分类:C# 时间:2012-01-01 人气:0
本文关键词: linux下,IP地址,MAC地址
分享到:

相关文章

  • 如何确定的IP和MAC地址netsnmp代理? 2012-11-08

    我使用Debian 6.0和NET-SNMP 5.4.3. 我有一个问题涉及捕获IP地址和MAC地址的以太网接口存在于系统上. 在我的SNMP代理,我要弄清楚的接口有多少系统以太网在一个表中,并更新自己的IP和MAC地址. 我已经看过预装MIB和发现,IP-MIB包含了系统的以太网IP地址的表,但我找不到源头来检查它是如何实现的. 能否请你建议我如何可以实现这个功能,或在哪里可以找到一些进一步infromation? 谢谢,拉维 --------------解决方案------------- 有

  • PowerShell的:获取网卡的本地IP,MAC地址和名称 2012-11-21

    我一直在写一些PowerShell代码,这是应该收集关于XML的计算机存储信息. 但我似乎无法得到的网卡IP,MAC地址和名称. 下面是一些代码,我写的(工作代码)为例: #OSInfo $newosinfo = (@($xml.computer.software.osinfo)[0]) Get-WmiObject -computer $compname Win32_OperatingSystem | ForEach-Object { $newosinfo = $newosinfo.clone(

  • 如何扫描地域附近的无线接入点,并确定它们的IP和MAC地址 2013-05-20

    我如何可以通过编程扫描地域附近的无线接入点,并确定它们的IP和MAC地址. 特别是,我怎么能拉出无线接入点的IP和MAC地址没有被打开? 我如何能够区分无线接入点和其他事物之间,如智能手机或电脑? 起初,我可能会做这仅适用于Windows电脑,但最终我会希望有多种操作系统,包括MacOSX的,的iOS,Android的这种扫描功能... --------------解决方案------------- 的接入点的MAC地址,是在壳体的AP的,等于所述BSSID(基本服务集标识符). 大多数被设计为

  • 爪哇 - Linux系统中获取MAC地址 2013-07-18

    我试图让这个代码Linux系统的MAC地址: try { ip = InetAddress.getLocalHost(); NetworkInterface network = NetworkInterface.getByInetAddress(ip); byte[] mac = network.getHardwareAddress(); // System.out.print("Current MAC address: "); for (int i = 0; i < mac.l

  • 找出C对Linux和FreeBSD的MAC地址 2014-05-31

    我试图找出MAC地址和我设法创建一个使用的sysctl在Linux中,问题是,这个解决方案是不工作在FreeBSD版本,我开发的工作方案. 有什么办法,我可以找出用C比使用其他sysctl的MAC地址? --------------解决方案------------- 使用libpcap的图书馆. 它最多平台的方式,你可以找到. 这个库上使用网络嗅探器和入侵检测,以及奉献测量其它网络的统计数据. 该nethogs工具来每个进程的网络使用情况,使用的每台机器/端口带宽使用率来衡量iftop衡量. 在

  • 从IP查找MAC地址 2013-09-18

    可能重复: 获取远程主机的MAC地址 我正在其中有一个客户服务器结构的模块上. 我有MAC地址的基础上进行身份验证的连接等机器. 在安装的时候我存储有效的MAC地址的加密列表. 请注意,我有这个等机器和一些第三方应用程序将在此运行上的控制,我可以不安装此对等机器上的任何应用程序. 在运行时,当套接字连接发生了,我需要知道的MAC ID为连接使用的IP,这样我就可以验证这对以前存储的MAC地址. 是否有任何C / C ++ API可用,可以帮助我获得的IP地址,MAC地址. 这M / C通常被连接

  • 如何获得linux下接口的IPv6地址 2013-07-27

    你知道我能得到我的python2.6的接口之一的IPv6联系地址之一. 我尝试了与无处使我的插座模块. 谢谢. --------------解决方案------------- 该netifaces模块应该这样做. import netifaces addrs = netifaces.ifaddresses('eth0') addrs[netifaces.AF_INET6][0]['addr'] 你可以只简单地运行"使用ifconfig"以子进程.*打电话解析输出. 我一定会用这个去的,

  • 创建下拉的MAC地址列表会向下锁定到编辑整个文档 2012-08-28

    你好. 我工作的一个模板,将由15名工作人员使用. 我想利用下拉列表中. 我使用的开发者功能区组合框按钮创建了一些下拉列表. 问题是下拉列表仅当保护窗体是打开的. 当保护窗体被接通时,所述文档的其余部分不可编辑. 我想使模板用户更加友好,所以无论谁在使用它不会打开开发功能区,然后单击保护窗体按钮,背部和第四,当他们需要使用下拉菜单. 有谁知道一个解决方法这个问题的? 谢谢! --------------解决方案------------- 事实上,你很可能不希望人们把保护断 - 这导致"个人&qu

  • 如何获得MAC地址使用的是C程序在Linux的界面? 2012-08-11

    我想找到使用在Linux C程序的mac地址. 怎么做? --------------解决方案------------- 搜索通过量谷歌1分钟(我没有测试它自己,我的工作在Windows机器上的那一刻) /* * gethwaddr.c * * Demonstrates retrieving hardware address of adapter using ioctl() * * Author: Ben Menking <bmenking@highstream.net> * */ #incl

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 1.519 (s). 10 q(s)