首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Linux下编程获取本地IP地址的常见方法

代码编译运行平台:Linux 64bits+g++(-m64),-m64表示生成64bits的程序。 ---- 在进行Linux网络编程时,经常用到本机IP地址。本文罗列一下常见方法,以备不时之需。...方法一:ioctl()获取本地IP地址 Linux 下 可以使用ioctl()函数以及结构体 struct ifreq和结构体struct ifconf来获取网络接口的各种信息。...方法三:getaddrinfo()获取本地IP地址 注意,getaddrinfo()可以完成网络主机中主机名和服务名到地址的映射,但是一般不能用来获取本地IP地址,当它用来获取本地IP地址时,返回的一般是...127.0.0.1本地回环地址。...但是要想获取本地IP地址的时候,一般获取的是回环地址127.0.0.1。

7.6K20
您找到你想要的搜索结果了吗?
是的
没有找到

利用Linux防火墙隔离本地欺骗地址的方法详解

几乎所有的 Linux 发行版都带着一个内建的防火墙来保护运行在 Linux 主机上的进程和应用程序。...Linux 防火墙通常有两种接口:iptables 和 ipchains 程序(LCTT 译注:在支持 systemd 的系统上,采用的是更新的接口 firewalld)。...打开源地址验证 作为一个安全工程师,在处理远程的欺骗地址的时候,我采取的第一步是在内核打开源地址验证。 源地址验证是一种内核层级的特性,这种特性丢弃那些伪装成来自你的网络的包。...(LCTT 译注:到达的包的源地址应该可以从它到达的网络接口反向到达,只需反转源地址和目的地址就可以达到这样的效果) 利用下面简单的脚本可以打开源地址验证而不用手工操作: #!...via: https://opensource.com/article/18/2/block-local-spoofed-addresses-using-linux-firewall 总结 以上就是这篇文章的全部内容了

67532

Linux地址空间&&虚拟地址

这个地址绝对不是物理地址,理论上修改了数据为300之后不可能在输出有100,访问一个地址怎么可能又是100也是300。这个地址在系统层面上称之为虚拟地址。...在32位和64位下的地址空间大小是不一样的,为了方便这里使用32位来表述。32位从低到高一个有4GB的地址空间范围,实际上这个地址空间当中打印出来的地址,是该空间内对应的地址。...其实PCB和地址空间都是在物理内存里面的,只不过要访问初始化全局数据的时候,不在地址空间上保存,地址空间只会提供线性连续地址,让用户之后通过虚拟地址地址空间,将虚拟地址转化到为了物理内存中。...,所以在地址空间的初始化数据中就有它的地址虚拟地址,页表的左侧也有它的虚拟地址,在页表右侧就有它对应的物理地址。...所以虚拟地址相同而物理地址不同。 3. 进程调度 Linux中的nice值并不是能任意调度的,而是从-20到19,这40个数字之间变换。

10810

Linux】进程地址空间

文章目录 一、前言 二、什么是进程地址空间 三、进程地址空间如何进行管理 四、为什么会存在进程地址空间 五、进程地址空间区域的严格划分 一、前言 学习Linux系统编程一共要翻越三座大山 – 进程地址空间...Linux中,三者的意思是一样的,都表示虚拟地址,大家不用过于区分。...所以和管理进程一样,操作系统会使用一种内核数据结构来对地址空间进行管理,Linux中用于 管理地址空间的内核数据结构叫做 mm_struct,操作系统会为每个进程创建一个 mm_struct 对象,然后通过管理结构体对象来间接管理进程地址空间...Linux 中 mm_struct 源码如下: 可以看到,进程地址空间其实也是进程属性的一种,我们可以通过进程的 task_struct 来找到/管理进程对应的地址空间。...注:严格来说,磁盘中程序内部的地址叫做逻辑地址,但是在上面我们就说过,对于Linux来说,虚拟地址、线性地址、逻辑地址是一样的,都是虚拟地址

3.8K00

仿淘宝收货地址本地数据库

说了这么多,现在进入今天的猪蹄,推出>,有网购经验的同学应该对这个很熟悉,在淘宝的Android客户端里面,有一个功能是设置收货地址,不清楚的同学可以自己下载个淘宝客户端...(四)这个是选择好地址之后的界面,主要还是界面的转换跟焦点的获取 有时候setFocusable(true)跟setFocusableInTouchMode(true)并不能使控件获得焦点,要再之前加上一句...addressDB.updeteAddress(myAddress)){                           Toast.makeText(getBaseContext(), "修改收货地址成功...show();                       }else{                           Toast.makeText(getBaseContext(), "修改收货地址失败...addressDB.insertAddress(myAddress)){                           Toast.makeText(getBaseContext(), "添加收货地址成功

3.5K70

Linux】进程地址空间

显示相同地址,却是不同的值 下面在Linux上验证 创建test.c文件 st.c  ⮀...假设是物理地址,不可能同一个变量的地址,而读取到不同的值 我们在语言层面用的地址,不是物理地址,而是虚拟地址或者线性地址、 2 ....1字节 定义一个整数相当于在内存中开辟4个字节,连续4个字节对应的起始地址对应整形变量的起始地址 一个整数4个字节,而每个字节都有自己的地址,所以一个整数要有四个地址,而正常来说会取首地址作为整数的地址...地址空间是一段线性范围,从全0到全FFFF(16进制),因为数字是线性的,每一个数字表示一个地址,每个地址对应一个字节 地址空间是线性结构的 4.确定地址空间 32位下地址空间默认为0-42亿多 假设空间范围为...对第一个问题的解答 直接用的是虚拟地址,找到地址不是目的,而是该地址所对应的内容 页表:将虚拟地址转化成物理地址,左侧填充虚拟地址,右侧填充物理地址 当有一个虚拟地址,通过特定的地址空间想访问特定的区域时

2.9K10
领券