ip地址转化代码实例
/*@author: lgh@
*
* */
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <stdlib.h>
#include <netinet/in.h>//ntohl
#include <arpa/inet.h> //inet_addr
#include <sys/types.h>
#ifdef UNICODE
#define T(x) __TXT(x)
#define __TXT(s) L ## s
#else
#define T(s) s
#endif /* UNICODE */
/*
#if defined (DEBUG_DISABLE)
#undef DEBUG_DISABLE
#else
#endif
*/ /*********************************************************************/
#ifndef DEBUG_DISABLE
/*
#define lprint(tag, fmt...) \
do{if(tag)printf(fmt);}while(0)
*/
#define lprint(x, ...) do{printf(x, ##__VA_ARGS__);}while(0)
#else
#define lprint(tag, fmt...)
#endif /*********************************************************************/
#ifdef CONFIG_DUAL_IMAGE
#if defined (CONFIG_RT2880_FLASH_2M)
#define IMAGE1_SIZE 0x100000
#elif defined (CONFIG_RT2880_FLASH_4M)
#define IMAGE1_SIZE 0x200000
#elif defined (CONFIG_RT2880_FLASH_8M)
#define IMAGE1_SIZE 0x400000
#elif defined (CONFIG_RT2880_FLASH_16M)
#define IMAGE1_SIZE 0x800000
#elif defined (CONFIG_RT2880_FLASH_32M)
#define IMAGE1_SIZE 0x1000000
#else
#define IMAGE_SIZE TEST
#endif
#endif//end #ifdef,否则会出现25:1: error: unterminated #ifdef,这样的错 /*********************************************************************/
typedef void* (*square_t)(int* x); void* square (int* x)
{
*x *= *x;
return (void*)square;
} int lt1224(void)
{
int x = ;
((square_t)((square_t)((square_t)square (&x)) (&x)) (&x)) (&x);
printf ("%d\n", x);
return ;
}
/*********************************************************************/
#ifndef NIP4
#define NIP4_FMT "%u.%u.%u.%u"
#define NIP4(addr) \
((unsigned char *)&addr)[], \
((unsigned char *)&addr)[], \
((unsigned char *)&addr)[], \
((unsigned char *)&addr)[] #define HIP4_FMT "%u.%u.%u.%u"
#define HIP4(addr) \
((unsigned char *)&addr)[], \
((unsigned char *)&addr)[], \
((unsigned char *)&addr)[], \
((unsigned char *)&addr)[]
#endif #ifndef NIP6
#define NIP6_FMT "%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x"
#define NIP6(addr) \
(unsigned)((addr)[]), \
(unsigned)((addr)[]), \
(unsigned)((addr)[]), \
(unsigned)((addr)[]), \
(unsigned)((addr)[]), \
(unsigned)((addr)[]), \
(unsigned)((addr)[]), \
(unsigned)((addr)[]), \
(unsigned)((addr)[]), \
(unsigned)((addr)[]), \
(unsigned)((addr)[]), \
(unsigned)((addr)[]), \
(unsigned)((addr)[]), \
(unsigned)((addr)[]), \
(unsigned)((addr)[]), \
(unsigned)((addr)[])
#endif /*
#ifdef __CHECKER__
#define __bitwise__ __attribute__((bitwise))
#else
#define __bitwise__
#endif
#ifdef __CHECK_ENDIAN__
#define __bitwise __bitwise__
#else
#define __bitwise
#endif
typedef __u16 __bitwise __le16;
typedef __u16 __bitwise __be16;
typedef __u32 __bitwise __le32;
typedef __u32 __bitwise __be32;
typedef __u64 __bitwise __le64;
typedef __u64 __bitwise __be64;
*/ typedef __signed__ char __s8;
typedef unsigned char __u8; typedef __signed__ short __s16;
typedef unsigned short __u16; typedef __signed__ int __s32;
typedef unsigned int __u32; typedef __signed__ long __s64;
typedef unsigned long __u64; union nf_inet_addr {
__u32 all[];
__u32 ip;// __be32 ip;
// __be32 ip6[4];
struct in_addr in;
struct in6_addr in6;
};
/*********************************************************************/ union endian{
int i;
char c;
}; int main(int argc, char *argv[])
{
char *s="";
char *p;
p=strpbrk(s,"a1 839"); /*1会最先在s字符串中找到*/
lprint("%s\n",p);
p=strpbrk(s,"");/*3 会最先在s 字符串中找到*/
lprint("%s\n",p);
lprint("%s\n", T("deling")); lprint("************************************************************************\n");
lt1224(); lprint("************************************************************************\n");
if(argc != )
{
return ;
}
union endian le;
le.i = 0x3456;/*16bit宽的数*/
if(le.c == 0x56){
lprint("little endian\n");
}else lprint("big endian\n");
printf("%0x, %0x\n", le.i, le.c); char ipdot[] = {};/*点分十进制*/
long iphost = ;/*主机字节序,x86一般都是小端模式*/
long ipnet = ;/*网络字节序,大端模式*/ strncpy(ipdot, argv[], sizeof(ipdot));
lprint("Get ipdot:%s\n", ipdot); ipnet = inet_addr(ipdot);
lprint("Get ipnet:%ld:"NIP4_FMT"\n", ipnet, NIP4(ipnet));
iphost = ntohl(ipnet);
lprint("Get iphost:%ld:"NIP4_FMT"\n", iphost, NIP4(iphost));
lprint("Get iphost:%ld:"HIP4_FMT"\n", iphost, HIP4(iphost));
iphost++;
lprint("Get iphost++:%ld:"HIP4_FMT"\n", iphost, HIP4(iphost)); /*net --> host*/
unsigned array[];
array[] = (ntohl(ipnet) >> ) & 0xFF;
array[] = (ntohl(ipnet) >> ) & 0xFF;
array[] = (ntohl(ipnet) >> ) & 0xFF;
array[] = ntohl(ipnet) & 0xFF;
lprint(NIP4_FMT"\n", array[], array[], array[], array[]); lprint("%ld.%ld.%ld.%ld\n", ipnet & 0xff,
ipnet>> & 0xff,
ipnet>> & 0xff,
ipnet>> & 0xff);
lprint("************************************************************************\n");
return ;
}
ip地址转化代码实例的更多相关文章
- C#验证ip地址的代码
如下的代码是关于C#验证ip地址的代码. public Boolean CheckIPValid(String strIP) { char chrFullStop = '.'; string[] ar ...
- JSP 获取真实IP地址的代码
[转载]JSP 获取真实IP地址的代码 JSP 获取真实IP地址的代码 在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的. ...
- 【转载】JSP 获取真实IP地址的代码
JSP 获取真实IP地址的代码 在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的. 但是在通过了 Apache,Squid ...
- Linux下获取本机IP地址的代码
Linux下获取本机IP地址的代码,返回值即为互联网标准点分格式的字符串. #define ETH_NAME "eth0" //获得本机IP地址 char* GetLocalAdd ...
- js获取IP地址多种方法实例教程
js获取IP地址方法总结 js代码获取IP地址的方法,如何在js中取得客户端的IP地址.原文地址:js获取IP地址的三种方法 http://www.jbxue.com/article/11338. ...
- 将IP地址转化为整数
$ip = 'IP地址';echo $intip = sprintf('%u',ip2long($ip)); //转换为无符号整型echo long2ip($intip);//将整型转换为ip
- 获取Linux下的IP地址 java代码
/** * 获取Linux下的IP地址 * * @return IP地址 * @throws SocketException */ public static String getLinuxLocal ...
- C#获取本地IP地址[常用代码段]
获得当前机器的IP代码,假设本地主机为单网卡 string strHostName = Dns.GetHostName(); //得到本机的主机名 IPHostEntry ipEntry = Dns. ...
- openresty(nginx)中使用lua脚本获取请求IP地址的代码
人狠话不多,直接上代码:------------------------------------------------------------------------------------- lo ...
随机推荐
- c#音乐播放器(欣赏)
设置界面 Mini模式 播放器使用C#编写,用到了大量的自定义控件,播放是调用windows API. 现在只是完成了本地音乐功能,下一步我将要做歌词同步及网络音乐 当然,完成以后我将一步一步教大家做 ...
- Centos 7配置ntp时间同步
1.NTP时钟同步方式说明 NTP在linux下有两种时钟同步方式,分别为直接同步和平滑同步: 1)直接同步 使用ntpdate命令进行同步,直接进行时间变更.如果服务器上存在一个1 ...
- PHP通过IP 获取 地理位置(实例)
发布:JB02 来源:脚本学堂 分享一例php代码,实现通过IP地址获取访问者的地理位置,在php编程中经常用到,有需要的朋友参考下吧.本节内容:PHP通过IP获取地理位置 例子: 复制代码代码 ...
- 小课堂Week12 Clean Code Part1
小课堂Week12 Clean Code Part1 今天的主题是函数,让我们看一个函数,找一找其中的"不整洁". 我们也根据这段代码,讨论下对于整洁代码的两个重要原则. publ ...
- linux下的mount命令的用法详解
挂接命令(mount) 首先,介绍一下挂接(mount)命令的使用方法,mount命令参数非常多,这里主要讲一下今天我们要用到的. 命令格式:mount [-t vfstype] [-o option ...
- python杂记-1(os模块)
os模块说明:python os模块包含普遍的操作系统功能 os.access(path, mode) # 检验权限模式 os.chdir(path) # 改变当前工作目录os.chflags(pat ...
- Java入门到精通——工具篇之Maven概述
为接手gxpt准备已经快一个月了从SSH2-->EJB-->环境搭建-->Maven的构建.下面就带领大家初始Maven 一.什么是Maven. Maven是一个垮平台的项目管理工具 ...
- wordpress 开发日志及技巧收集
搜索结果数量提示 <?php /* Search Count */ $allsearch = &new WP_Query("s=$s&showposts=-1" ...
- 我爱我家:我为什么选择AppCan?
10年前,说起手机,大家联想到的词大概是:电话.短信.QQ.拍照,以及贪吃蛇等有限的几个小游戏.而如今,手机毫无疑问已经成为人们生活中不可或缺的部分.这是一个神奇的东西:通讯工具,外卖神器,游戏机,移 ...
- Xcode7 beta 网络请求报错:The resource could not be loaded because the App Transport Security policy requires the use of a secure connection.
Xcode7 beta 网络请求报错:The resource could not be loaded because the App Transport Xcode7 beta 网络请求报错:The ...