在linux下 获取,修改子网掩码NETMASK的两个函数
//获取子网掩码的函数QString GetLocalNetMask()
{
int sock_netmask;
char netmask_addr[50];
struct ifreq ifr_mask;
struct sockaddr_in *net_mask;
sock_netmask = socket( AF_INET, SOCK_STREAM, 0 );
if( sock_netmask == -1)
{
perror("create socket failture...GetLocalNetMask\n");
return "";
}
memset(&ifr_mask, 0, sizeof(ifr_mask));
strncpy(ifr_mask.ifr_name, ifname, sizeof(ifr_mask.ifr_name )-1);
if( (ioctl( sock_netmask, SIOCGIFNETMASK, &ifr_mask ) ) < 0 )
{
printf("mac ioctl error\n");
return "";
}
net_mask = ( struct sockaddr_in * )&( ifr_mask.ifr_netmask );
strcpy( netmask_addr, inet_ntoa( net_mask -> sin_addr ) );
printf("local netmask:%s\n",netmask_addr);
close( sock_netmask );
return QString( netmask_addr );
}
//修改子NETMASK的函数
QString SetLocalNetMask(const char *szNetMask)
{
int sock_netmask;
char netmask_addr[32];
struct ifreq ifr_mask;
struct sockaddr_in *sin_net_mask;
sock_netmask = socket( AF_INET, SOCK_STREAM, 0 );
if( sock_netmask == -1)
{
perror("Not create network socket connect\n");
return "";
}
memset(&ifr_mask, 0, sizeof(ifr_mask));
strncpy(ifr_mask.ifr_name, "eth0", sizeof(ifr_mask.ifr_name )-1);
sin_net_mask = (struct sockaddr_in *)&ifr_mask.ifr_addr;
sin_net_mask -> sin_family = AF_INET;
inet_pton(AF_INET, szNetMask, &sin_net_mask ->sin_addr);
if(ioctl(sock_netmask, SIOCSIFNETMASK, &ifr_mask ) < 0)
{
printf("sock_netmask ioctl error\n");
return "";
}
}
相关文档:
1. HCI层协议概述:
HCI提供一套统一的方法来访问Bluetooth底层。如图所示:
从图上可以看出,Host Controller Interface(HCI) 就是用来沟通Host和Module。Host通常就是PC, Module则是以各种物理连接形式(USB,serial,pc-card等)连接到PC上的bluetooth Dongle。
在Host这一端:application,SDP,L2cap等协议 ......
(L2CAP协议简介,L2CAP在BlueZ中的实现以及L2CAP编程接口)
一:L2CAP协议简介:
Logical Link Control and Adaptation Protocol(L2CAP)
逻辑连接控制和适配协议 (L2CAP) 为上层协议提供面向连接和无连接的数据服务,并提供多协议功能和分割重组操作。L2CAP 充许上层协议和应用软件传输和接收最大长度为 64K 的 L2CAP � ......
从
Linux 2.6
起引入了一套新的驱动管理和注册机制 :Platform_device
和 Platform_driver
。
Linux
中大部分的设备驱动,都可以使用这套机制 ,
设备用
Platform_device
表示,驱动用
Platform_driver
进行注册。
Linu ......
1. useradd 用户名
useradd命令负责添加用户到Linux系统(只有管理员可以使用这个命令)。
例:
useradd tom
2.userdel 用户名
userdel命令删除一个用户账户(只有管理员可以使用这个命令)。
例:
userdel tom
3.passwd 用户名
当创建一个用户之后需要为用户设置密码,passwd 可以完成此功能。当passwd后面没有参 ......