Linux网卡的读写编程
Linux网卡的读写编程zz
Linux系统的所有设备都是以文件的形式存在的,所以对系统的操作可以转换为对文件的操作。本程序实现对网卡这个硬件设备进行读取操作,即也是对设备的文件进行读写操作。代码看似麻烦,但却不复杂。
主要的系统函数有:socket(),ioctl(),memcpy(),strcpy()。
两个复杂的结构体:sockaddr_in,ifreq。
.../
#include<stdio.h>
#include<unistd.h>
#include<sys/ioctl.h>
#include<stdlib.h>
#include<sys/socket.h>
#include<netinet/in.h>
#include<arpa/inet.h>
#include<sys/types.h>
#include<net/if.h>
#include<string.h>
unsigned char g_eth_name[16];
unsigned char g_macaddr[6];
unsigned char g_ipaddr;
unsigned char g_subnetmask;
unsigned char g_broadcast_ipaddr;
void init_net(void)
{
int i;
int sock;
struct sockaddr_in sin;
struct ifreq ifr;
sock=socket(AF_INET,SOCK_DGRAM,0);
if(sock==-1)
printf("get the socket file descriptor faild!\n");
strcpy(g_eth_name,"etho");
strcpy(ifr.ifr_name,g_eth_name);
strcpy("eth name:\t%s\n",g_eth_name);
if(ioctl(sock,SIOCGIFHWADDR,&ifr)<0)
printf("get the network card addr faild!\n");
memcpy(g_macaddr,ifr.ifr_hwaddr.sa_data,6);
printf("the network card addr is:");
for(i=0;i<5;i++)
printf("%.2x:",g_macaddr[i]);
printf("%.2x:",g_macaddr[i]);
if(ioctl(sock,SIOCGIFADDR,&ifr)<0)
printf("get the net ip addr faild!\n");
memcpy(&sin,&ifr.ifr_addr,sizeof(sin));
g_ipaddr=sin.sin_addr.s_addr;
printf("local eth0:\t%s\n",inet_ntoa(sin.sin_addr));
if(ioctl(sock,SIOCGIFBRDADDR,&ifr)<0)
printf("get the broadcast ip addr faild!\n");
memcpy(&sin,&ifr.ifr_addr,sizeof(sin));
g_broadcast_ipaddr=sin.sin_addr.s_addr;
printf("broadcast:\t%s\n",inet_ntoa(sin.sin_addr));
if(ioctl(sock,SIOCGIFNETMASK,&ifr)<0)
printf("get the netsubmask faild!\n");
memcpy(&sin,&ifr.ifr_addr,sizeof(sin));
g_subnetmask=sin.sin_addr.s_addr;
printf("subnetmask:\t%s\n",inet_ntoa(sin.sin_addr));
close(sock);
}
int main()
{
init_ne
相关文档:
要将文件系统挂载到我们的 Linux 系统上,
就要使用 mount 这个指令
用法:
mount [-tonL] 装置名称代号 挂载点
mount -a
参数:
-a :依照 /etc/fstab 的内容将所有相关的磁盘都挂上来!
-n :一般来说,当我们挂载文件系统到 Linux 上头时, Linux 会主动的将
&nbs ......
2.设置环境变量。
#vi /etc/profile
在最后面加入
#set java environment
export JAVA_HOME=/usr/java/jdk-1_5_0_02
export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
:$JAVA_HOME/lib/mysql-connector-java-3.2.0.jar:$JAVA_HOME/lib/classes12.jar
export PATH=$PATH:$JAVA_ ......
ps -ef|grep tomcat 查看正在启动的线程
cd .. 退回上一极
ls 列出当前目录的文件
kill -9 [线程号] 关闭线程
su - root 登陆账号
阅读(0)| 评论(14)| 分享(0) 较新一篇:转:带搜索分页的gird 较旧一篇:疯子 评论| 赞
周帅 2010-01-26 18:23
su - root 登陆账号
周帅 2010-01-26 19:53
......
安装OpenSSH
Ubuntu缺省没有安装SSH Server,使用以下命令安装:
sudo apt-get install openssh-server openssh-client
不过Ubuntu缺省已经安装了ssh client。
配置完成后重起:
sudo /etc/init.d/ssh restart
windows 客户端用putty连接命令shell模式 ......
1. 安装apache2, lxr, glimpse
$ sudo apt-get install apache2
$ sudo apt-get install lxr
下载glimpse
安装glimpse:
$ ./configure
$ make
$ sudo make install
2. 配置lxr
$ sudo vim /usr/share/lxr/http/lxr.conf
修改为:baseurl:http://localhost/lxr/http
&n ......