Ò׽ؽØͼÈí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

Linux»ñÈ¡±¾»úIP¡¢MACʾÀý³ÌÐò

#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <sys/ioctl.h>
#include <net/if.h>
#include <stdio.h>
#include <string>
#include <iostream>
#include <cstring>
using namespace std;
void peek_interfaces(int fd);
void print_hw_addr(int fd, const char* if_name);
int main() {
int fd = socket(AF_INET, SOCK_DGRAM, 0);
if(-1 == fd) {
perror("Failed create socket.");
return -1;
}
peek_interfaces(fd);
close(fd);
return 0;
}
void peek_interfaces(int fd) {
ifreq ifs[16] = {0};
ifconf conf = {sizeof(ifs)};
conf.ifc_req = ifs;
if(-1 == ioctl(fd, SIOCGIFCONF, &conf)) {
perror("Failed IOCTL SIOCGIFCONF.");
return;
}
if(conf.ifc_len >= sizeof(ifs)) {
perror("Buffer too small for IOCTL SIOCGIFCONF.");
return;
}

int num = conf.ifc_len / sizeof(ifreq);
cout << num << " interface entry retrieved." << endl;
for(int i = 0; i < num; ++i) {
cout << "[ " << ifs[i].ifr_name << " ]" << endl;
sockaddr_in* sai = (sockaddr_in*)&ifs[i].ifr_addr;
cout << "Addr: " << inet_ntoa(sai->sin_addr) << endl;
print_hw_addr(fd, ifs[i].ifr_name);
cout << endl;
}
}
void print_hw_addr(int fd, const char* if_name) {
ifreq req = {0};
strcpy(req.ifr_name, if_name);
if(-1 == ioctl(fd, SIOCGIFFLAGS, &req)) {
perror("Failed IOCTL SIOCGIFFLAGS.");
return;
}
if(req.ifr_flags & IFF_LOOPBACK) {
cout << "Is LOOPBACK." << endl;
return;
}
if(-1 == ioctl(fd, SIOCGIFHWADDR, &req)) {
perror("Failed IOCTL SIOCGIFHWADDR.");
return;
}
unsigned char* puc = (unsigned char*)req.ifr_hwaddr.sa_data;
printf("HW addr: %02x:%02x:%02x:%02x:%02x:%02x\n",
puc[0], puc[1], puc[2], puc[3], puc[4], puc[5]);
}


Ïà¹ØÎĵµ£º

linuxѧϰ±Ê¼Ç£¨1£©

0/viµÄʹÓÃ:
Ctrl + f  ÆÁÄ»ÏòÇ°·­¶¯Ò»Ò³£¨³£Óã©
Ctrl + b  ÆÁÄ»Ïòºó·­¶¯Ò»Ò³£¨³£Óã©
Ctrl + d  ÆÁÄ»ÏòÇ°·­¶¯°ëÒ³
Ctrl + u  ÆÁÄ»Ïòºó·­¶¯°ëÒ³
n<space>  °´ÏÂÊý×ÖºóÔÙ°´¿Õ¸ñ¼ü£¬¹â±ê»áÏòÓÒÒƶ¯ÕâÒ»ÐеÄn¸ö×Ö·û¡£ÀýÈç:20<space>,Ôò¹â±ê»áÏòÓÒÒƶ¯20¸ö×Ö·û
0   &nbs ......

xshellÁ¬½ÓlinuxÖÐÎÄÂÒÂë

ÍøÉϺܶàÌû×ÓÎÊxhellÁ¬½ÓlinuxÖÐÎÄÂÒÂ룬¾ø´ó²¿·ÖÊǽ«LANGÊôÐÔÖµÉèÖÃÓ¢ÎÄ£¬¼´export LANG=en_US.UTF-8;
µ«ÊÇÎÒÃǽ«ÏµÍ³ÉèÖÃΪÖÐÎÄ£¬µ±È»ÊÇÒòΪ×Ô¼ºÓÃÖÐÎÄ¿ÉÒÔÌá¸ßЧÂÊ£¬¼õÉÙ³ö´í¡£
ÕâÖÖ·½Ê½Ö»ÄÜÖα겻ÄÜÖα¾£¬Ï´ÎʹÓÃsshÁ¬linuxʱ»¹ÊÇ»áÂÒÂ룬
ÏÖÔÚ½«ÎÒ×Ô¼ºµÄ½â¾ö·½Ê½¹²Ïí¸ø´ó¼Ò¡£
±à¼­/etc/sysconfig/i18n
½«ÎļþÖе ......

linux ϵͳµ÷ÓÃÁÐ±í£¨×ª£©

ת×Ô£º
http://www.ibm.com/developerworks/cn/linux/kernel/syscall/part1/appendix.html
±¾ÎÄÁгöÁ˴󲿷ֳ£¼ûµÄLinuxϵͳµ÷Ó㬲¢¸½ÓмòÒªÖÐÎÄ˵Ã÷¡£
ÒÔÏÂÊÇLinuxϵͳµ÷ÓõÄÒ»¸öÁÐ±í£¬°üº¬Á˴󲿷ֳ£ÓÃϵͳµ÷ÓúÍÓÉϵͳµ÷ÓÃÅÉÉú³öµÄµÄº¯Êý¡£Õâ¿ÉÄÜÊÇÄãÔÚ»¥ÁªÍøÉÏËùÄÜ¿´µ½µÄΨһһƪÖÐÎÄ×¢Ê͵ÄLinuxϵͳµ÷ÓÃÁÐ±í£¬¼´Ê¹ ......

Linux³£ÓÃÎļþϵͳ¸ñʽ

       LinuxÆô¶¯Ê±£¬µÚÒ»¸ö±ØÐë¹ÒÔصÄÊǸùÎļþϵͳ£»Èôϵͳ²»ÄÜ´ÓÖ¸¶¨É豸ÉϹÒÔظùÎļþϵͳ£¬Ôòϵͳ»á³ö´í¶øÍ˳öÆô¶¯¡£Ö®ºó¿ÉÒÔ×Ô¶¯»òÊÖ¶¯¹ÒÔØÆäËûµÄÎļþϵͳ¡£Òò´Ë£¬Ò»¸öϵͳÖпÉÒÔͬʱ´æÔÚ²»Í¬µÄÎļþϵͳ¡£²»Í¬µÄÎļþϵͳÀàÐÍÓв»Í¬µÄÌص㣬Òò¶ø¸ù¾Ý´æ´¢É豸µÄÓ²¼þÌØÐÔ¡¢ÏµÍ³ÐèÇóµÈÓв»Í¬ ......

Linux——NFSÍøÂçÎļþϵͳ

NFSÍøÂçÎļþϵͳÊÇͨ¹ýÎļþϵͳʵÏÖ×ÊÔ´¹²ÏíµÄÒ»ÖÖ×îÖØÒªµÄ·½Ê½¡£
c/s ¿Í»§»ú   ·þÎñÆ÷
B/S ä¯ÀÀÆ÷   ·þÎñÆ÷
NFS·þÎñ¶ËÅäÖãº
±à¼­/etc/exportsÎļþÒÔÅäÖÿª·Å·¾¶¡£/home/share      192.168.0.123£¨ro£©/(rw).
/etc/init.d/portmap  restart
/etc/init.d/nfs&nb ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØͼ | ¸ÓICP±¸09004571ºÅ