linux 网络地址
http://blog.163.com/xychenbaihu@yeah/blog/static/132229655201121505130366/
Linux网络编程----IP转换函数--inet_addr和inet_ntoa
Linux下IP转换工具::
#Include <sys/types.h>
#include <sys/socket.h>
#include <arpa/inet.h>
strcut sockaddr_in src;
src.sin_addr.s_addr = inet_addr("*.*.*.*"); //构建网络地址。
printf("%s\n",inet_ntoa(src.sin_addr)); //将网络地址转换成字符串。
注意::
inet_ntoa存在的问题是inet_ntoa的返回值是一个static类型的char *指针,所以会出现问题::
char *a1,a2;
src.sin_addr.s_addr = inet_addr("192.168.1.123");
a1 =inet_ntoa(src.sin_addr);
src.sin_addr.s_addr = inet_addr("192.168.1.124");
a2 = inet_ntoa(src.sin_addr);
printf("a1:%s\n",a1);
显示为:: a1:192.168.1.124
printf("a2:%s\n",a2);
显示为: a2:192.168.1.124
原因是静态的static char *
Linux网络通信----网络地址构建struct sockaddr_in
Linux下网络编程,一般需要包含的头文件包括:
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#Include <arpa/inet.h>
#include <netdb.h>
#include <unistd.h>
Linux下网络地址有:
struct sockaddr
{
unsigned int sin_family; //取值AF_INET;
char sa_data[14];
}
这种结构不常用,常用的是:
struct sockaddr_in
{
short int sin_family; //取值AF_INET;
unsigned short int sin_port; //取值htons(PORT);
struct in_addr sin_addr; //取值.sin_addr.s_addr = inet_addr("*.*.*.*");
unsigned char sin_zero[8]; //取值bzero(.sin_zero,8)或memset(.sin_zero,0,8);
}
其中:
struct in_addr
{
unsigned long s_addr; //存储IP地址。
}
所以创建一个网络地址::
strcut sockaddr_in src;
src.sin_family = AF_INET;
src.sin_addr.s_addr = inet_addr("*.*.*.*");
bzero(src.sin_zero,8);
其中用到了,inet_addr是linux提供的网络编程中使用的IP转换工具。
inet_addr("*.*.*.*");将字符串IP地址转换成网络地址,并且是网络字节序的。
相反的转换工具有inet_ntoa等。
linux 网络地址相关推荐
- linux的网络地址配置,教你如何完成Linux网络地址配置
如果你想了解Linux,了解一些关于Linux的知识.本文为你讲解Linux网络地址配置,希望你能理解Linux网络地址配置,下面就这个问题来详细说说吧. 1.关闭与开启网路端口: 开启81端口: i ...
- linux如何配置网卡地址吗,教会你如何完成Linux网络地址配置
如果你想了解Linux,了解一些关于Linux的知识.本文为你讲解Linux网络地址配置,希望你能理解Linux网络地址配置,下面就这个问题来详细说说吧. 1.关闭与开启网路端口: 开启81端口: i ...
- Linux——网络地址临时配置(详细步骤+问题解决)
配置过程中:所遇到的一些问题及解决思路: (19条消息) Linux中出现RTNETLINK answers: Network is unreachable错误的解决思路(路由增删)_孤城286的博客 ...
- Linux网络服务(一)
2016/10/26 Linux网络地址配置文件OSI七层模型功能第七层:应用层 数据 用户接口,提供用户程序"接口". 第六层:表示层 数据 数据的表现形式,特定功能的实现,如数 ...
- 41 | 案例篇:如何优化 NAT 性能?(上)
上一节,探究了网络延迟增大问题的分析方法,并通过一个案例,掌握了如何用 hping3.tcpdump.Wireshark.strace 等工具,来排查和定位问题的根源. 简单回顾一下,网络延迟是最核心 ...
- 正斜杠(/)反斜杠(\)简单区别
1.正斜杠,一般就叫做斜杠:符号为 "/": 反斜杠 符号为 "\" 2.在Unix/Linux 网络地址中,路径的分隔采用正斜杠" ...
- (九)洞悉linux下的Netfilteramp;iptables:网络地址转换原理之DNAT
网络地址转换:NAT Netfitler为NAT在内核中维护了一张名为nat的表,用来处理所有和地址映射相关的操作.诸如filter.nat.mangle抑或raw这些在用户空间所认为的"表 ...
- Linux Kernel TCP/IP Stack — L3 Layer — netfilter 框架 — iptables NAPT 网络地址/端口转换
目录 文章目录 目录 网络地址转换(NAT) SNAT DNAT 端口映射(PAT) 网络地址转换(NAT) IP 网络有公网与私网的区分,通常内网使用私网 IP,Internet 使用公网 IP,而 ...
- Linux网络编程 - 域名(DNS)及网络地址
一 域名系统 DNS(Domain Name System,域名系统) 是对IP地址和域名进行互相转换的系统,其核心是 DNS 服务器. 1.1 什么是域名 提供网络服务的服务器端也是通过IP地址区分 ...
最新文章
- souce insight中文出现乱码
- 关于jsp页面传值乱码问题
- 笔记-项目进度管理-控制进度
- mysql的联表查询和去重复数据
- spy-debugger 前端调试工具
- 基于Django的博客系统
- OS笔记047代理传值和block传值
- Java IO编程全解(六)——4种I/O的对比与选型
- c++构造函数分类说明
- 数据结构(郝斌课程内容概述)
- Python PDF转图片 Word
- centos php ioncube_CentOS 7安装ionCube Loader为php解密组件的方法
- 啦啦啦啦啦_开放组织读书俱乐部:啦啦队长如何设定方向
- 跑语义分割程序时报错
- 在VMware中安装红帽Linux系统
- e代驾——打造代驾服务标准化平台
- 入门科普|Python和C/C++等有何区别?
- css如何实现菱形背景图片,使用CSS 实现菱形图片,斜条纹背景
- bat文件注册成服务
- 微信小程序的冥冥中拥有的小细节
热门文章
- java set 接口_【Java提高十七】Set接口集合详解
- gps有几个轨道面_嫦五“一脚刹车”,进了环月轨道
- Npm如何升级package.json
- win8.1 php mysql,win8.1(64位) apache2.4.3+php5.6.3+mysql5.6安装
- html5 coverflow,使用CSS+JS帮你实现苹果cover flow效果
- gpio模拟pwm_模拟智能台灯
- 【转】自然语言系列学习之表示学习与知识获取(八)利用远程监督多实例的关系抽取
- Hadoop报错AccessControlException: Permission denied: user=vincent, access=WRITE, inode=/:iie4bu:supe
- 钱穆的中学读书事(作者王国华)
- 华为看片牛?真香!那就送你一台试试,可折现!