易截截图软件、单文件、免安装、纯绿色、仅160KB

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 iscsi initiator 工具

open-iscsi:http://www.open-iscsi.org/
iscsi 软件的评价
至于软件表现的强弱如何?此可透过实际的CPU 运算占用(占用百分比愈低愈好)、I/O 传输表现(每秒完成多少个I/O 处理,即IOPS)来评断,另外要重视支持的GbE 层级、错误修正层级,如10GbE 优于1GbE,以及ERL2 优于ERL1 优于ERL0。以及是否支持MPIO,MPIO 指的是一部 ......

linux下面 磁盘管理 学习心得

磁盘与目录的容量
在文字接口底下查看目前的磁盘最大容许容量、已经使用掉的容量、 目前所在目录的已使
用容量
指令 df [-ahikHTm] [目录或文件名]
-a  :列出所有的文件系统,包括系统特有的 /proc 等文件系统;
-k  :以 KBytes 的容量显示各文件系统;
-m  :以 MBytes 的容量显示各文件系统; ......

linux作业管理(ctrl+z,fg,jobs,kill等)

作业管理
1.将“当前”作业放到后台“暂停”:ctrl+z
2.观察当前后台作业状态:jobs
参数:
-l 除了列出作业号之外同时列出PID  
-r:列出仅在后台运行(run)的作业
-s:仅列出暂停的作业
3.将后台作业拿到前台处理:fg
fg %jobnumber (%可有可无)
4.让作业在后台运行:bg
ctrl ......

Java调用Linux命令行若干实例

 Executing a CommandSee also e90 Reading Output from a Command.
try {
// Execute a command without arguments
String command = "ls";
Process child = Runtime.getRuntime().exec(command);

// Execute a command with an argument
command = "ls /tmp"; ......

My Linux Studying Note (五)

                                                   ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号