点分十进制与网络字节序之间的相互转换
来源:互联网 发布:mac 删除智能文件夹 编辑:程序博客网 时间:2024/06/05 09:03
- #include <sys/types.h>
- #include <netinet/in.h>
- #include <ctype.h>
- #include <stdio.h>
- #include <stdlib.h>
- #include <arpa/inet.h>
- /*
- * Ascii internet address interpretation routine.
- * The value returned is in network order.
- */
- unsigned int
- __inet_aton(const char *cp)
- {
- unsigned int val = 0;
- unsigned int tmp = 0;
- char c;
- int base = 10;
- int shift = 32;
- c = *cp;
- for (;;) {//可以给出一个任意长度的字符串;
- tmp = 0;
- for (;;) {//获得'.'分割的每一个字符串的数值;
- if (isdigit(c)) {
- tmp = (tmp * base) + (c - '0');
- c = *++cp;
- } else break;
- }
- shift -= 8;
- tmp <<= shift;
- val += tmp;
- if (c == '.') {
- c = *++cp;
- } else
- break;
- }
- /*
- * Check for trailing characters.
- */
- if (c != '\0' && (!isspace(c)))
- goto ret_0;
- return (htonl (val));//返回网络字节序
- ret_0:
- return (0);
- }
- /* The interface of this function is completely stupid, it requires a
- static buffer. We relax this a bit in that we allow one buffer for
- each thread. */
- static char buffer[18];//作为库函数,正式这个函数不能重入的原因;
- char *
- __inet_ntoa (unsigned int in)
- {
- unsigned char *bytes = (unsigned char *) ∈
- snprintf (buffer, sizeof (buffer), "%d.%d.%d.%d",
- bytes[0], bytes[1], bytes[2], bytes[3]);//网络字节序是小端表示,第一个是byte[0];
- return buffer;
- }
- int main()
- {
- printf("ip :%lu\n",__inet_aton("192.168.1.105 "));
- printf("str:%s\n",__inet_ntoa(__inet_aton("192.168.1.105")));
- return 0;
- }
0 0
- 点分十进制与网络字节序之间的相互转换
- 网络字节序 主机字节序 点分十进制ip 相互转换
- linux网络-点分十进制和网络字节序转换
- Windows 下IP点分十进制和网络字节序的转换
- IP地址点分十进制与网络字节序整数的转化
- 网络字节序与主机字节序 和它们之间的相互转换函数
- Python Network Programming(4)---主机字节序与网络字节序之间的相互转换
- Android字节、十进制、十六进制、字符串之间的相互转换
- IP地址点分十进制格式转换为网络字节序二进制以及八进制十六进制输出
- 网络字节序变成点分十进制,一个一个字节的输出log
- 点分十进制子网掩码和CIDR的相互转换
- IP与点分十进制数的字符串之间的转换(c++)
- IP与点分十进制数的字符串之间的转换(c++)(转)
- 点分十进制字符串IP与十进制整数相互转换方法
- 二进制,八进制,十进制与十六进制之间的相互转换
- 实现二进制与十进制之间的相互转换
- 实现二进制与十进制之间的相互转换
- 二进制和十进制之间的相互转换
- 为n个字符串(n>=1,字符串之间用,分隔开)两边加单引号
- org.apache.jasper.JasperException: Unable to compile class for JSP:解决方法
- 打开期刊-以html的形式打开
- hadoop balance 需要在退出安全模式的情况下进行
- C++编译遇到参数错误(cannot convert parameter * from 'const char [**]' to 'LPCWSTR')
- 点分十进制与网络字节序之间的相互转换
- UltraEdit-列编辑功能
- JAVA的动态代理
- jsp页面将数据导出到Excel
- SED AND AWK
- CXF的三种发布方式和客户端调用方法
- 关于目前开源的物联网框架。
- 利用python和VirusTotal的API接口写的在线样本扫描的脚本
- Android 下使用 Http 协议实现多线程断点续传下载