linux系统ioctl使用示例Linux认证考试

文章作者 100test 发表时间 2009:12:11 17:40:48
来源 100Test.Com百考试题网


  程序1:检测接口的 inet_addr,netmask,broad_addr

  程序2:检查接口的物理连接是否正常

  程序3:更简单一点测试物理连接

  程序4:调节音量

  *********************************程序1****************************************

  #include <.stdio.h>.

  #include <.string.h>.

  #include <.stdlib.h>.

  #include <.errno.h>.

  #include <.unistd.h>.

  #include <.sys/types.h>.

  #include <.sys/socket.h>.

  #include <.netinet/in.h>.

  #include <.arpa/inet.h>.

  #include <.sys/ioctl.h>.

  #include <.net/if.h>.

  static void usage(){

  printf("usage : ipconfig interface \n").

  exit(0).

  }

  int main(int argc,char **argv)

  {

  struct sockaddr_in *addr.

  struct ifreq ifr.

  char *name,*address.

  int sockfd.

  if(argc != 2)

  usage().

  else

  name = argv[1].

  sockfd = socket(AF_INET,SOCK_DGRAM,0).

  strncpy(ifr.ifr_name,name,IFNAMSIZ-1).

  if(ioctl(sockfd,SIOCGIFADDR,&.ifr) == -1)

  perror("ioctl error"),exit(1).

  addr = (struct sockaddr_in *)&.(ifr.ifr_addr).

  address = inet_ntoa(addr->.sin_addr).

  printf("inet addr: %s ",address).

  if(ioctl(sockfd,SIOCGIFBRDADDR,&.ifr) == -1)

  perror("ioctl error"),exit(1).

  addr = (struct sockaddr_in *)&.ifr.ifr_broadaddr.

  address = inet_ntoa(addr->.sin_addr).

  printf("broad addr: %s ",address).

  if(ioctl(sockfd,SIOCGIFNETMASK,&.ifr) == -1)

  perror("ioctl error"),exit(1).

  addr = (struct sockaddr_in *)&.ifr.ifr_addr.

  address = inet_ntoa(addr->.sin_addr).

  printf("inet mask: %s ",address).

  printf("\n").

  exit(0).

  }


相关文章


剖析Linux系统启动过程Linux认证考试
Linux认证辅导:firefox提速Linux认证考试
linux认证辅导:awk文本处理总结Linux认证考试
linux认证辅导:linux安装字体Linux认证考试
linux系统ioctl使用示例Linux认证考试
Linux建立Swap分区文件并自动mountLinux认证考试
Fedoralinux的播放器与解码器的安装Linux认证考试
RedhatLinux的网络配置Linux认证考试
ubuntu下修改hosts使用xmarksLinux认证考试
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛