/* kanda@nn.iij4u.or.jp
 * return type of network device 
 * "dev" is eth0, ppp0, ... 
 */
/* return dev type(string) :
 *                             ether
 *                             ppp
 *                             loop
 *                             slip
 */
static char *
disp_nettype(char *dev)
{
  int fd;
  struct ifreq ifr; /* net/if.h */
  int type;

  fd = socket(AF_INET, SOCK_DGRAM,0);

  if (fd >= 0) {
    strcpy(ifr.ifr_name, dev); 
    ifr.ifr_addr.sa_family = AF_INET;
    if (ioctl(fd, SIOCGIFHWADDR, &ifr)< 0) { /* /usr/include/ioctls.h */
      return "error";
    }
    type = ifr.ifr_hwaddr.sa_family; 
  
    switch (type) {     /* linux/if_arp.h */
    case ARPHRD_ETHER:
      return "ether";
      break;
    case ARPHRD_SLIP:
      return "slip";
      break;
    case ARPHRD_CSLIP:
      return "slip";
        break;
    case ARPHRD_PPP:
      return "ppp";
        break;
    case ARPHRD_LOOPBACK:
      return "loop";
        break;
    default: /* and more ... */
      return "unknown";
        break;
    }
  }
  return "error";
}




