inet_ntoa.c
上传用户:tany51
上传日期:2013-06-12
资源大小:1397k
文件大小:2k
源码类别:

MySQL数据库

开发平台:

Visual C++

  1. /*
  2.  * Copyright (C) 1999  Ross Combs (rocombs@cs.nmsu.edu)
  3.  *
  4.  * This program is free software; you can redistribute it and/or
  5.  * modify it under the terms of the GNU General Public License
  6.  * as published by the Free Software Foundation; either version 2
  7.  * of the License, or (at your option) any later version.
  8.  *
  9.  * This program is distributed in the hope that it will be useful,
  10.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  11.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  12.  * GNU General Public License for more details.
  13.  *
  14.  * You should have received a copy of the GNU General Public License
  15.  * along with this program; if not, write to the Free Software
  16.  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
  17.  */
  18. #include "common/setup_before.h"
  19. #ifndef HAVE_INET_NTOA
  20. #include <stdio.h>
  21. #ifdef HAVE_STDDEF_H
  22. # include <stddef.h>
  23. #else
  24. # ifndef NULL
  25. #  define NULL ((void *)0)
  26. # endif
  27. #endif
  28. #ifdef HAVE_SYS_TYPES
  29. # include <sys/types.h>
  30. #endif
  31. #ifdef HAVE_SYS_PARAM_H
  32. # include <sys/param.h>
  33. #endif
  34. #ifdef HAVE_NETINET_IN_H
  35. # include <netinet/in.h>
  36. #endif
  37. #ifdef HAVE_ARPA_INET_H
  38. # include <arpa/inet.h>
  39. #endif
  40. #include "inet_ntoa.h"
  41. #include "common/setup_after.h"
  42. extern char const * inet_ntoa(struct in_addr const * addr)
  43. {
  44.     static char   buff[16];
  45.     unsigned long val;
  46.     
  47.     if (!addr)
  48. return NULL;
  49.     
  50.     val = ntohl(addr->s_addr);
  51.     sprintf(buff,"%u.%u.%u.%u",
  52.     (val>>24)&0xff,
  53.     (val>>16)&0xff,
  54.     (val>> 8)&0xff,
  55.     (val    )&0xff);
  56.     return buff;
  57. }
  58. #else
  59. typedef int filenotempty; /* make ISO standard happy */
  60. #endif