½Ã½ºÅÛ°ü¸®ÀÚÀÇ ½°ÅÍ Ä¿ÇǴнº Ä¿ÇÇÇâÀÌ ³ª´Â *NIX
Ä¿ÇǴнº
½Ã½ºÅÛ/³×Æ®¿÷/º¸¾ÈÀ» ´Ù·ç´Â °÷
 FAQFAQ   °Ë»ö°Ë»ö   ¸â¹ö¸®½ºÆ®¸â¹ö¸®½ºÆ®   »ç¿ëÀÚ ±×·ì»ç¿ëÀÚ ±×·ì   »ç¿ëÀÚ µî·ÏÇϱâ»ç¿ëÀÚ µî·ÏÇϱâ 
 °³ÀÎ Á¤º¸°³ÀÎ Á¤º¸   ºñ°ø°³ ¸Þ½ÃÁö¸¦ È®ÀÎÇÏ·Á¸é ·Î±×ÀÎÇϽʽÿÀºñ°ø°³ ¸Þ½ÃÁö¸¦ È®ÀÎÇÏ·Á¸é ·Î±×ÀÎÇϽʽÿÀ   ·Î±×Àηα×ÀΠ

°¡ÀÔ¾øÀÌ ´©±¸³ª ±ÛÀ» ¾µ ¼ö ÀÖ½À´Ï´Ù. °øÁö»çÇ׿¡ ´ëÇÑ ´ñ±Û±îÁöµµ..




BBS >> ¼³Ä¡, ¿î¿µ Q&A | ³×Æ®¿÷, º¸¾È Q&A | ÀÏ¹Ý Q&A || Á¤º¸¸¶´ç | AWS || ÀÚÀ¯°Ô½ÃÆÇ | ±¸Àα¸Á÷ || °øÁö»çÇ× | ÀÇ°ßÁ¦½Ã
¿ÜºÎ·Î Åë½Å°¡´ÉÇÑ IP¾Ë¾Æ³»±â.

 
±Û ¾²±â   ´äº¯ ´Þ±â    Ä¿ÇǴнº, ½Ã½ºÅÛ ¿£Áö´Ï¾îÀÇ ½°ÅÍ °Ô½ÃÆÇ À妽º -> ³ªµµ ÇѸ¶µð
ÀÌÀü ÁÖÁ¦ º¸±â :: ´ÙÀ½ ÁÖÁ¦ º¸±â  
±Û¾´ÀÌ ¸Þ½ÃÁö
minzkn



°¡ÀÔ: 2003³â 9¿ù 16ÀÏ
¿Ã¸° ±Û: 1
À§Ä¡: ¾î?

¿Ã¸®±â¿Ã·ÁÁü: 2003.9.16 È­, 5:42 am    ÁÖÁ¦: ¿ÜºÎ·Î Åë½Å°¡´ÉÇÑ IP¾Ë¾Æ³»±â. Àοë°ú ÇÔ²² ´äº¯

ÇÑÀÚ Àû¾îº¾´Ï´Ù.

À½ ÀÌ°ÍÀÌ ¹«¾ùÀÎ°í ¼³¸íÇÏÀÚ¸é
¿ì¸® º¸Åë Network card°¡ 1°³¸¦ ¾²Áö¿ä?
±×·±µ¥ ¾È±×·¯½ÅºÐµµ ¸¹À»°Ì´Ï´Ù.
¿©·¯°³ÀÇ IP»ç¿ëÇϽǶ§
¾î¶²°Ô ÁøÂ¥·Î ¿ÜºÎ·Î ³ª°¡´Â IPÀÎÁö °ËÃâÇغ¼ ÇÊ¿ä°¡ ÀÖÁÒ?
±×·±¶§ ¾ø¾ú³ª¿ä?
ÀÌ°Ç ±×¶§ ¿ÜºÎ·Î ³ª°¥¼ö ÀÖ´Â IP¸¦ °ËÃâÇϴ°̴ϴÙ.
¹°·Ð ÀÌ°ÍÀ» 100% ½Å·ÚÇÒ¼ö´Â ¾ø°í
±×·¸°Ô ½Å·Ú¸¦ Çϱâ À§Çؼ­´Â ICMP°¡ ±¸ÇöµÇ¾î¾ß ÇÕ´Ï´Ù.
¶ÇÇÑ Gateway°¡ ÇÑ°³°¡ ¾Æ´Ò¼öµµ ÀÖ´Ù´Â Á¡µµ °í·Á»çÇ×ÀÌ µÇ°í¿ä.
eth0:0 eth0:1 µîÀÇ °æ¿ìµµ »ý°¢ÇغÁ¾ß Çϸç
ifr·Î´Â °ËÃâÀÌ ¾ÈµÇ´Â °æ¿ì¿¡ ´ëÇؼ­´Â /procÀ¸·Î º¸Á¤ÇÒ ÇÊ¿äµµ ÀÖ°í¿ä.

ÇÏÁö¸¸ °£·«ÇÏ°Ô³ª¸¶ ÀÌ·¸°Ô Çѹø ¸¸µé¾î ºÃ½À´Ï´Ù.
º»·¡´Â º¸°­ÇؾßÇÒ°÷ÀÌ Çѵαºµ¥°¡ ¾Æ´Ï¶ó´Â Á¡Àº
¾ËÁö¸¸ ±×³É ¿ø¸®±¸ÇöÀÌ´Ï±î µµ¿òÀÌ µÉ±îÇؼ­
¸¸µé¾îº¾´Ï´Ù.

ÄÚµå:

#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/ioctl.h>
#include <netinet/in.h>
#include <net/if.h>
#include <netinet/if_ether.h>
#include <arpa/inet.h>
#include <netdb.h>
#include <unistd.h>
#include <fcntl.h>

int main(int s_Argc, char **s_Argv);

int main(int s_Argc, char **s_Argv)
{
 const char *c_Proc_Route = "/proc/net/route";
 int s_SocketHandle, s_Handle, s_ReadBytes, s_RequestCount = 10;
 struct ifconf s_ifconfig;
 struct ifreq *s_ifrequest;
 struct sockaddr_in *s_SockAddr_In;
 char *s_MyDevice;
 char *s_MyIP, *s_MyBroadcastIP, *s_MyNetmaskIP, *s_RouteIP, *s_RouteName;
 char s_Buffer[ 32 << 10 ];

 s_RouteIP = s_RouteName = (char *)0;
 s_Handle = open(c_Proc_Route, O_RDONLY);
 if(s_Handle >= 0)
 {
  s_ReadBytes = read(s_Handle, &s_Buffer[0], sizeof(s_Buffer) - 1);
  close(s_Handle);
  if(s_ReadBytes > 0)
  {
   unsigned long s_Destination, s_Gateway, s_Flags, s_RefCnt, s_Use, s_Metric, s_Mask;
   char *s_TraceBuffer;
   int s_Index;
   s_Buffer[ s_ReadBytes ] = '\0';
   s_Index = 0;
   s_TraceBuffer = (char *)(&s_Buffer[s_Index]);
   do
   {
    s_RouteName = (char *)0;
    if(s_Buffer[s_Index] == '\0' || s_Buffer[s_Index] == '\n')
    {
     s_Buffer[s_Index] = '\0';
     s_RouteName = s_TraceBuffer;
     while((*s_TraceBuffer) != ' ' && (*s_TraceBuffer) != '\t' && (*s_TraceBuffer) != '\0')s_TraceBuffer++;
     *(s_TraceBuffer++) = '\0';
     while(((*s_TraceBuffer) == ' ' || (*s_TraceBuffer) == '\t') && (*s_TraceBuffer) != '\0')s_TraceBuffer++;
     if(sscanf(s_TraceBuffer, "%lx%lx%lX%lu%lu%lu%lx", &s_Destination, &s_Gateway, &s_Flags, &s_RefCnt, &s_Use, &s_Metric, &s_Mask) == 7)   
     {
      if(s_Destination == 0lu)
      {
       /* fprintf(stdout, "Default route [%s:%s]\n", s_RouteName, s_TraceBuffer); */
       break;
      }
      /* else fprintf(stdout, "Normal route [%s:%s]\n", s_RouteName, s_TraceBuffer); */
     }
     /* else fprintf(stdout, "Non line [%s:%s]\n", s_RouteName, s_TraceBuffer);  */
     s_Index++;
     s_TraceBuffer = (char *)(&s_Buffer[s_Index]);
    }
    else if(s_Buffer[s_Index] == '\r')s_Buffer[s_Index++] = ' ';
    else s_Index++;
   }while(s_Index < s_ReadBytes);
  }
 }
 else fprintf(stderr, "Can not open \"%s\"\n", c_Proc_Route);

 if(s_RouteName == (char *)0)
 {
  return(-1);
 }
 
 s_SocketHandle = socket(AF_INET, SOCK_DGRAM, 0);
 if(s_SocketHandle >= 0)
 {
  memset((void *)&s_ifconfig, 0, sizeof(struct ifconf));
  do
  {
   if(s_ifconfig.ifc_buf)free(s_ifconfig.ifc_buf);
   s_ifconfig.ifc_len = sizeof(struct ifreq) * s_RequestCount;
   s_ifconfig.ifc_buf = malloc(s_ifconfig.ifc_len);
   if(s_ifconfig.ifc_buf)
   {
    if(ioctl(s_SocketHandle, SIOCGIFCONF, &s_ifconfig) == 0)
    {
     if(s_ifconfig.ifc_len < (sizeof(struct ifreq) * s_RequestCount))
     {
      s_ifrequest = s_ifconfig.ifc_req;
      if(s_ifrequest)
      {
       for(s_RequestCount = 0;s_RequestCount < s_ifconfig.ifc_len;s_RequestCount += sizeof(struct ifreq), s_ifrequest++)
       {
   s_MyDevice = strdup(s_ifrequest->ifr_name);
   
   ioctl(s_SocketHandle, SIOCGIFADDR, s_ifrequest);       
   s_SockAddr_In       = (struct sockaddr_in *)(&s_ifrequest->ifr_addr);
        s_MyIP              = strdup(inet_ntoa(s_SockAddr_In->sin_addr));   
   ioctl(s_SocketHandle, SIOCGIFBRDADDR, s_ifrequest);       
   s_SockAddr_In       = (struct sockaddr_in *)&s_ifrequest->ifr_broadaddr;
        s_MyBroadcastIP     = strdup(inet_ntoa(s_SockAddr_In->sin_addr));   
   ioctl(s_SocketHandle, SIOCGIFNETMASK, s_ifrequest);       
   s_SockAddr_In       = (struct sockaddr_in *)&s_ifrequest->ifr_netmask;
        s_MyNetmaskIP       = strdup(inet_ntoa(s_SockAddr_In->sin_addr));   
   
   if(strcmp(s_MyDevice, "lo") != 0 && strcmp(s_RouteName, s_MyDevice) == 0)fprintf(stdout, "%s %s\n", s_MyDevice, s_MyIP);
   
   if(s_MyDevice     )free(s_MyDevice);
   if(s_MyIP         )free(s_MyIP);
   if(s_MyBroadcastIP)free(s_MyBroadcastIP);
   if(s_MyNetmaskIP  )free(s_MyNetmaskIP);
       }
      }
      break;
     }
     else s_RequestCount += 10;
    }
    else break;
   }
   else break;
  }while(1); 
  if(s_ifconfig.ifc_buf)free(s_ifconfig.ifc_buf);
  close(s_SocketHandle);    
 }
 else fprintf(stderr, "Can not open socket !!!\n");
 return(0);
}

/* End of source */

_________________
<mailto:minzkn@infoeq.com>
<home: http://minzkn.wowdns.com:2744>
À§·Î
»ç¿ëÀÚ Á¤º¸ º¸±â ºñ¹Ð ¸Þ½ÃÁö º¸³»±â ±Û ¿Ã¸°ÀÌÀÇ À¥»çÀÌÆ® ¹æ¹® MSN ¸Þ½ÅÀú
ÀÌÀü ±Û Ç¥½Ã:   
±Û ¾²±â   ´äº¯ ´Þ±â    Ä¿ÇǴнº, ½Ã½ºÅÛ ¿£Áö´Ï¾îÀÇ ½°ÅÍ °Ô½ÃÆÇ À妽º -> ³ªµµ ÇѸ¶µð ½Ã°£´ë: GMT + 9 ½Ã°£(Çѱ¹)
ÆäÀÌÁö 1 Áß 1

 
°Ç³Ê¶Ù±â:  
»õ·Î¿î ÁÖÁ¦¸¦ ¿Ã¸± ¼ö ¾ø½À´Ï´Ù
´ä±ÛÀ» ¿Ã¸± ¼ö ¾ø½À´Ï´Ù
ÁÖÁ¦¸¦ ¼öÁ¤ÇÒ ¼ö ¾ø½À´Ï´Ù
¿Ã¸° ±ÛÀ» »èÁ¦ÇÒ ¼ö ¾ø½À´Ï´Ù
ÅõÇ¥¸¦ ÇÒ ¼ö ¾ø½À´Ï´Ù


Powered by phpBB © 2001, 2005 phpBB Group