1、QT下

QString RuntimeConfig::ipAddress(QString network)
{
QList<QNetworkAddressEntry> list;
QString localIPaddress; QNetworkInterface interface = QNetworkInterface::interfaceFromName(network);
list = interface.addressEntries();
if (!list.isEmpty())
{
localIPaddress = list.at().ip().toString();
} return localIPaddress;
} QString RuntimeConfig::macAddress(QString network)
{
QList<QNetworkInterface> netList;
int netCount;
int neti;
QNetworkInterface myNet;
netList = QNetworkInterface::allInterfaces();
netCount = netList.count(); for (neti = ; neti < netCount; neti ++)
{
if (netList.at(neti).isValid() && netList.at(neti).name() == network)
{
myNet = netList.at(neti);
break;
}
}
return (myNet.hardwareAddress());
}

2、C语言下

#include <stdio.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/ioctl.h>
#include <netinet/in.h>
#include <net/if.h>
#include <net/if_arp.h>
#include <arpa/inet.h>
#include <errno.h> #include "getinfo.h" int getip(char *ip, char *name)
{
int sock;
struct sockaddr_in sin;
struct ifreq ifr;
sock = socket(AF_INET, SOCK_DGRAM, );
if (sock == -)
{
perror("socket");
return -;
}
strncpy(ifr.ifr_name, name, IFNAMSIZ);
ifr.ifr_name[IFNAMSIZ - ] = ;
if (ioctl(sock, SIOCGIFADDR, &ifr) < )
{
perror("ioctl");
return -;
}
memcpy(&sin, &ifr.ifr_addr, sizeof(sin));
sprintf(ip, "%s", inet_ntoa(sin.sin_addr));
return ;
} int getmac(char *mac, char *name)
{
struct ifreq ifreq;
int sock; if((sock=socket(AF_INET,SOCK_STREAM,)) <)
{
perror( "socket ");
return ;
}
strcpy(ifreq.ifr_name, name);
if(ioctl(sock,SIOCGIFHWADDR,&ifreq) <)
{
perror( "ioctl ");
return ;
}
sprintf(mac, "%02x:%02x:%02x:%02x:%02x:%02x",
(unsigned char)ifreq.ifr_hwaddr.sa_data[],
(unsigned char)ifreq.ifr_hwaddr.sa_data[],
(unsigned char)ifreq.ifr_hwaddr.sa_data[],
(unsigned char)ifreq.ifr_hwaddr.sa_data[],
(unsigned char)ifreq.ifr_hwaddr.sa_data[],
(unsigned char)ifreq.ifr_hwaddr.sa_data[]);
return ;
}

LINUX下QT与C语言通过网卡名获取网卡IP与MAC的更多相关文章

  1. Linux下Qt的安装与配置

    参考资料:http://www.cnblogs.com/emouse/archive/2013/01/28/2880142.html Linux 下编译.安装.配置 QT 下载qt 这里用的是4.7. ...

  2. 中标麒麟(linux)下Qt调用python

    转自:https://blog.csdn.net/lwlgzy/article/details/83857297 http://www.cnblogs.com/jiaping/p/6321859.ht ...

  3. linux下QT Creator常见错误及解决办法

    最近因为在做一个关于linux下计算机取证的小项目,需要写一个图形界面,所以想到了用QT来写,选用了linux下的集成开发环境QT Creator5.5.1,但刚刚安装好,竟然连一个"hel ...

  4. Linux下Qt应用程序的发布(使用LDD命令查看所有依赖的库文件)

    最近一直在学习Qt,用Qt写了一个程序,但是不知道怎么发布,网上说的都是在windows下怎么发布Qt应用程序,但是,在windows下Qt应用程序依赖的库文件与linux下的名字不同.于是,我就想到 ...

  5. 如何在Linux下用C/C++语言操作数据库sqlite3(很不错!设计编译链接等很多问题!)

    from : http://blog.chinaunix.NET/uid-21556133-id-118208.html 安装Sqlite3: 从www.sqlite.org上下载Sqlite3.2. ...

  6. 【Qt开发】Linux下Qt开发环境的安装与集成

    近期工作需要在Linux下用Qt进行C++开发,所以就在linux下尝试装QT开发环境.本人用的linux是CentOS 6.5.现在对安装过程做出总结.有两种安装方式,下面分别详述: 1 图形化安装 ...

  7. Linux下Qt创建共享库与链接共享库详解

    随着程序写的逐渐变多,或多或少的我们都会使用别人写好的库:或者我们不想让别人看到我们的一些核心程序,可以将核心程序封装成库.本次和大家分享的是在Ubuntu下使用Qt生成共享库以及在Qt中链接共享库的 ...

  8. Linux 下Qt实现守护进程实例(转)

     原文地址:Linux守护进程的编程方法(含实例) 作者:lingdxuyan 参考文献 Linux信号列表(zz) Linux 守护进程的编程方法 linux上编写守护进程的例程 Linux下后台守 ...

  9. 【环境变量】Linux 下三种方式设置环境变量与获取环境变量

    1.在Windows 系统下,很多软件安装都需要配置环境变量,比如 安装 jdk ,如果不配置环境变量,在非软件安装的目录下运行javac 命令,将会报告找不到文件,类似的错误. 2.那么什么是环境变 ...

随机推荐

  1. EditText判断用户输入完成,然后进行操作解决方案

    private Timer timer = new Timer(); private final long DELAY = 1000; // in ms EditText editTextStop = ...

  2. 海量数据面试题----分而治之/hash映射 + hash统计 + 堆/快速/归并排序

    1.从set/map谈到hashtable/hash_map/hash_set 稍后本文第二部分中将多次提到hash_map/hash_set,下面稍稍介绍下这些容器,以作为基础准备.一般来说,STL ...

  3. 跪求 EF缓存问题 也不知道是不是缓存 问题

    1.数据库里面查的结果 2 vs里面查的结果   为什么 不是16 而是2 下面是代码 /// <summary> /// 权限检查 /// </summary> public ...

  4. apache主目录,配置文件目录结构说明

    apache服务安装成功后,主要的目录结构如下: |-- bin 程序命令目录[apache执行文件的目录如apachectl,htpassed] |-- build |-- cgi-bin 预设给一 ...

  5. Ext常用Tool

    Ext.onReady(function() { var mPanel = Ext.create('Ext.panel.Panel', { title: 'Panel', width: '100%', ...

  6. ubuntu下配置安装conky

    由于默认的conky配置不好看,于是下载了一些配置,网上一抓一大把. 首先  sudo apt-get install conky-all 然后下载想要的配置文件,下载下来的是压缩文件,解压就行了,解 ...

  7. Eclipse servlet和jsp编写

    servlet: 在你新建的Application myapp/WEB-INF/classes/test目录下新建HelloWorld.java package test; import java.i ...

  8. 《how to design programs》第10章表的进一步处理

    返回表的函数: 下面是一个求工资的函数: ;; wage : number  ->  number ;; to compute the total wage (at $12 per hour) ...

  9. 国际化标签 <fmt:bundle>&<fmt:message>的使用

    国际化标签 <fmt:bundle>&<fmt:message>的使用 Message.properties文件: name=www.gis520.com #info= ...

  10. JavaEE Tutorials (30) - Duke综合案例研究示例

    30.1Duke综合应用的设计和架构456 30.1.1events工程458 30.1.2entities工程459 30.1.3dukes—payment工程461 30.1.4dukes—res ...