ip字符串转换 linux,Linux网络编程入门
在日常使用,我们更多的使用十进制字符串表示IP地址,比如192.169.130.66,而不是记忆32位的IP地址(关键是太长了记不住呀),使用字符串IP更为方便,可读性也更好。
但是根据上述in_addr定义,网络编程中需要的是网络字节序表示的IP地址,因此需要有函数能相互转换十进制字符串和网络字节序整数表示的IP地址。
函数的头文件以及定义如下:
#include
in_addr_t inet_addr( const char *string); /* 将字符串IP地址转换为网络字节序整数表示的IP地址 */
char *inet_ntoa( struct in_addr in); /* 将网络字节序整数表示的IP地址转换为字符串IP地址 */
如果IP地址合法,inet_addr函数可以成功转换为对应网络字节序;如果IP地址非法,那么inet_addr返回的值为INADDR_NONE(表示无效的结果)。
其中in_addr_t一般为32位的unsigned in,表示网络字节序。
写个程序测试下上述函数:
#include
#include // inet_addr
int main()
{
const char *string1 = "192.168.130.60";
const char *string2 = "192.168.130.256"; // 非法IP,范围为0~255,
in_addr_t network_address1 = inet_addr(string1);
if (network_address1 == INADDR_NONE) {
printf("错误");
} else {
printf("网络字节序为:%#x\n", network_address1);
}
in_addr_t network_address2 = inet_addr(string2);
if (network_address2 == INADDR_NONE) {
printf("错误");
} else {
printf("网络字节序为:%#x\n", network_address2);
}
return 0;
}
在右侧建立个c文件,测试上述转换函数。
ip字符串转换 linux,Linux网络编程入门相关推荐
- Linux网络编程 入门
Linux网络编程入门 (转载) (一)Linux网络编程--网络知识介绍 Linux网络编程--网络知识介绍 客户端和服务端 网络程序和普通的程序有一个最大的区别是网络程序是由两个 ...
- 【网络编程入门】使用socket在Linux下实现即时通信软件
使用socket在Linux下实现即时通信软件 在前一篇文章中讲到了如何使用winsock:[网络编程入门]在C++中使用Windows TCP Sockets,也算是勉强入门了吧,接下来自己写一下在 ...
- Linux C网络编程基础
目录 Linux套接字结构定义 Linux C的网络基础操作函数 字节顺序转换函数族 IP地址转换函数族 域名转换函数 Linux网络套接字操作函数 创建套接字描述符函数 绑定套接字函数 建立连接函数 ...
- 【Linux】网络编程三:TCP通信和UDP通信介绍及代码编写
参考连接:https://www.nowcoder.com/study/live/504/2/16. [Linux]网络编程一:网络结构模式.MAC/IP/端口.网络模型.协议及网络通信过程简单介绍 ...
- linux和网络编程笔记
第一部分.章节目录 3.4.1.程序的开始和结束 3.4.2.进程环境 3.4.3.进程的正式引入 3.4.4.fork创建子进程 3.4.5.父子进程对文件的操作 3.4.6.进程的诞生和消亡 3. ...
- linux系统/网络编程
经典数据: APUE:unix环境高级编程3版 linux系统编程手册 德 linux系统编程 oreily unix内核源码剖析 日 windows核心编程 linux系统开发模式: ssh远程登录 ...
- Linux下网络编程
Linux下网络编程初步 Linux以其源代码公开闻名于世,并以其稳定性和可靠性雄霸操作系统领域,在网络应用技术方面使用得更加广泛.很久以来它就是Windows的重要对手之一.随着网络时代的来临,Li ...
- 基于Linux的网络编程——网络聊天程序
网络聊天程序是目前应用极为广泛的一种网络软件,对于方便人们的交流沟通非常有效,同时,作为一种典型的网络应用,编写网络聊天程序是学习基于Linux的网络编程的有效方法. 结合任务需求设计该程序,程序采用 ...
- Linux原始网络编程,Linux操作系统网络编程 原始套接字 (1)
Linux操作系统网络编程--原始套接字 (1) http://soft.zdnet.com.cn/software_zone/2007/1020/568223.shtml 我们在前面已经学习过了网络 ...
- LINUX之网络编程j简述
一.TCP.IP概述 1.tcp/ip 模型 4 层 应用层{ http 超文本传输协议 ftp 文件传输协议 telnet 远程登录 ssh 安全外壳协议 stmp 简单邮件发送.pop3 ...
最新文章
- 【有图有真相】静态NAT、动态NAT、PAT、端口映射的详细配置过程
- 主从mysql replication 集群的sharding memcache集群使用consistent hash
- windows7出现MTP usb设备驱动安装问题解决方法
- 【渝粤教育】广东开放大学 土地力学与地基基础 形成性考核 (32)
- 什么linux系统是中文的,什么是Linux系统
- Analytics API and Customer Data Platform | Segment
- Maven常用命令-创建Java项目
- 如何用管程实现生产者消费者问题?
- linux php 网站计数器,PHP图形数字计数器的实现
- Asp.net系列--基础篇(二)
- CentOS 7.x 安装教程、硬盘分区、LVM、网络配置、软件源配置、制作USB Disk、U盘安装、网络安装...
- 【C/C++学习笔记】C++11 random 随机数(TR1)
- 关于vray5.2怎么关闭日志窗口
- Kvm与webvirtmgr虚拟化安装
- 迅雷7 down.php,帝国CMS教程:教你如何添加迅雷下载
- 6-7 拆分实数的整数与小数部分 (15 分)
- Android 仿QQ可展开的分组列表控件(ExpandableListview)的使用
- 合并报表软件怎么完成表格合并?
- .aspx文件和.aspx.cs文件的区别与联系
- OSChina 周四乱弹 —— 每次我穿短裙的时候
热门文章
- android studio json插件_热门Android Studio 插件,这里是Top 20
- python中面向对象的特殊成员_Python面向对象特殊成员
- java testng 源代码_根据测试用例的java源码自动生成TestNG的XML文件
- Docker-compose 安装Minio 最新版本
- 使用IntelliJ IDEA 2020 高效开发 springboot项目
- python3-numpy np.nditer 迭代数组、np.nditer修改数组、np.nditer广播迭代
- JavaScript-初识jQuery及公式
- pythonrgb高精度浮点运算类型_python实现RGB字符串,按24位对齐后输出对应Integer行数字...
- python制作远程桌面控制_Python 远程桌面协议RDPY简介
- wds linux,linux 无线组网方式 WDS功能