网络字节序 主机字节序 点分十进制ip 相互转换
2016-05-16 12:13
513 查看
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <netinet/in.h>
#include <sys/socket.h>
#include <sys/types.h>
#include <arpa/inet.h>
int main()
{
char ip[] = "192.168.22.1";
long r1, r2; //long
int r3;
struct in_addr addr;
r1 = inet_addr(ip); //返回网络字节序
if(-1 == r1){
printf("inet_addr return -1\n");
}else{
printf("inet_addr ip: %lx\n",r1);
printf("inet_addr ip: %x\n", ntohl(r1));
}
r2 = inet_network(ip); //返回主机字节序
if(-1 == r2){
printf("inet_network return -1\n");
}else{
printf("inet_network ip: %lx\n",r2);
printf("inet_network ip: %x\n", htonl(r2)); //ntohl: 主机字节序 ——> 网络字节序
}
memcpy(&addr,&r1,4);
printf("%s\n", inet_ntoa(addr)); //网络字节序->点分十进制IP
memset(&addr,0,4);
r3 = inet_aton(ip, &addr); //返回网络字节序
if(0 == r3){
printf("inet_aton return -1/n");
}else{
printf("inet_aton ip: %lx\n", addr.s_addr);
}
return 0;
}
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <netinet/in.h>
#include <sys/socket.h>
#include <sys/types.h>
#include <arpa/inet.h>
int main()
{
char ip[] = "192.168.22.1";
long r1, r2; //long
int r3;
struct in_addr addr;
r1 = inet_addr(ip); //返回网络字节序
if(-1 == r1){
printf("inet_addr return -1\n");
}else{
printf("inet_addr ip: %lx\n",r1);
printf("inet_addr ip: %x\n", ntohl(r1));
}
r2 = inet_network(ip); //返回主机字节序
if(-1 == r2){
printf("inet_network return -1\n");
}else{
printf("inet_network ip: %lx\n",r2);
printf("inet_network ip: %x\n", htonl(r2)); //ntohl: 主机字节序 ——> 网络字节序
}
memcpy(&addr,&r1,4);
printf("%s\n", inet_ntoa(addr)); //网络字节序->点分十进制IP
memset(&addr,0,4);
r3 = inet_aton(ip, &addr); //返回网络字节序
if(0 == r3){
printf("inet_aton return -1/n");
}else{
printf("inet_aton ip: %lx\n", addr.s_addr);
}
return 0;
}
相关文章推荐
- HTTP服务器与Android客户端的json交互
- centos开机自动启动网络
- HTTP协议之multipart/form-data请求分析
- Connection to https://dl-ssl.google.com refused
- Retrofit 简洁的网络请求神器
- Linux网络管理
- linux net子系统-协议层(传输层与网络层)
- 【Android】Universal Image Loader图片加载框架无法加载https图片问题解决方法
- HTTP状态码
- keepalived高可用lvs-dr 负载均衡httpd
- Nginx下只针对logging.php进行https处理的重写规则 【转】
- Nginx下只针对logging.php进行https处理的重写规则 【转】
- 卷积神经网络的原理公式推导与实现
- httpcliet超时重连设置
- 添加vMotion网络的VMkernel端口组
- VMware vSphere服务器虚拟化实验五 vCenter Server 网络管理
- VMware vShpere5 分布式网络交换机概念图
- API的HTTP状态码设计
- GCD 中组队列group与Afnetworking的结合使用
- zabbix监控TCP状态