钉钉开发之使用HTTP请求获取你的公网出口IP

2023-11-19

访问别人提供的网络服务时,对方出于安全性方面的考虑,可能会对请求的IP进行白名单限制,这时候需要提供机器的出口IP。比如目前微信公众号对于访问其接口需要先绑定开发者的服务器IP,这个IP实际上就是开发者服务器的出口IP。

但是获取当前机器的公网出口IP并不是想象中的那么容易。如果你的电脑直接暴漏在公网中,通过ipconfig或者ifconfig可以直接获取到这个IP。但是如果你在局域网中,ipconfig之类的命令只能获取到局域网分配的内部IP,这个地址在公网中不能访问。

局域网用户一般通过代理服务器上网。比如家里有三台电脑都需要上网,它们都连接到某个路由器,这个路由器再将相应的网络请求转发到实际的地址,路由器这时候就起到代理服务器的作用。再比如某个公司的服务器机房,其中部分机器需要访问外部网络,为每台机器分配独立的公网地址很不划算,这时候也需要通过某个代理服务器访问公网。这时候代理服务器的公网IP地址才是你的公网出口IP。

但是有些时候公网IP并不一定就是公网出口IP,上边两个例子中是内网访问外网资源,反过来,外网访问内网资源时同样可以使用代理服务器,称之为反向代理。这种方式通过在反向代理服务器开放某个端口,然后将对此端口的访问映射到提供服务的内网机器。对于外网用户来说,他们看到的就是反向代理服务器提供了相应的网络服务,完全不知道内网机器的存在。提供代理和反向代理的服务器可能是同一个,比如家庭路由器,既提供了代理上网的功能,还可以将某些端口开放并映射到内网电脑。但是在企业网络服务的生产环境中,出于资源管理、性能、以及安全性等方面的考虑,代理服务器和反向代理服务器一般选择不同的网络通道,使用不同的IP地址。

这些IP地址一般都可以通过网络管理员或者网络服务运营商来获得。但是在某些情况下获取这些信息可能不是很方便。比如家庭上网时对外的IP经常改变,需要及时的获取最新的IP地址,电信运营商不会搭理你。再比如使用虚拟主机的情况下,服务商只提供了主机对外提供服务时使用的IP地址,应用程序访问外部服务时可能使用了不同的网络通道,这个网络通道的IP地址没有相应的说明。

那么如何才能快速准确的获取公网出口IP呢?

可以直接访问某些提供此服务的网站,比如ip138或者百度,都可以在页面显示此IP,但是页面上也会有很多无关的其它内容,把IP地址摘出来还是有些麻烦。目前网络上也有人提供了一些接口,可以通过程序发起http请求来获取此IP,但是要么国外的访问不稳定,要么国内的不够简洁。

有没有一种简洁高效快速的方式呢?没有广告和过多的说明,既可以浏览器直接访问,也可以通过程序定时刷新。

很荣幸FireflySoft现在提供了这种获取出口IP的方式,浏览器访问 http://myip.fireflysoft.net,直接返回你的出口IP地址,没有任何其他信息干扰,阿里云多线网络接入,速度杠杠滴。当然自己写个程序访问也是一样的。看下图:

网络环境复杂多变,开发人员只需在服务器发起一次HTTP请求,就能获取到这个IP。

转自:http://blog.bossma.cn/server/use-a-http-request-get-your-outbound-ip/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

钉钉开发之使用HTTP请求获取你的公网出口IP 的相关文章

随机推荐

  • FPGA(3)验证数字逻辑(与门、与非门、二选一数据选择器、2-4译码器、半加器、全加器)

    目录 一 验证与门 二 验证与非门 三 验证二选一数据选择器 四 验证2 4译码器 五 验证半加器 六 验证全加器 0 初始化定义 1 第一个半加器 2 第二个半加器 3 得到最终进位Co 代码 0决定与 1决定或 一 验证与门 只要有一个
  • flask + 操作Mysql数据库

    安装flask sqlalchemy pymysql模块 1 pip install flask sqlalchemy pymysql Flask SQLAlchemy的介绍 1 ORM Object Relationship Mappin
  • JS字符串替换函数全部替换方法

    color olive JS字符串替换函数 Replace 字符串1 字符串2 1 我们都知道JS中字符串替换函数是Replace 字符串1 字符串2 但是这个函数只能将第一次出现的字符串1替换掉 那么我们如何才能一次性全部替换掉了 将上面
  • 程序员水平分级

    导读 近日 whattofix com刊登了一篇 DanielMarkham的文章 What Level Programmer Are You 文内将参差不齐的程序员按照技术水平分为从 只读 到 上帝 共十一个阶段 以帮助广大程序员找到自身
  • 结队练习源代码

    两个人结队练习源代码 我和同伴都不太适应 两人的习惯不同 在很多方面出现了分歧 但 结对编程还挺有意思的 感觉挺新鲜的 之前都没有这样过 我们轮流编程和监督 两人都参与到整个编程中 我编程时 她会指引编程的方向 提醒我出现的错误 像参数名
  • MIPI DSI的linux kernel驱动原理

    为了点亮一块MIPI屏幕 我们除了要了解MIPI DSI的工作原理之外 大前提是要了解整个MIPI DSI图显系统的组成 更需要清楚点亮一块MIPI屏幕需要做哪些事情 本文会捋顺各个环节所实现的功能以及基于RK3399来分析各个环节实现的原
  • stata面板数据gmm回归_STATA面板数据模型命令

    一 面板数据简介 面板数据是非常常见的数据类型 尤其是在经济 金融的研究中 面板数据 时间序列数据的相关模型 得到了极大地发展和广泛的应用 面板数据 简言之是时间序列和截面数据的混合 严格地讲是指对一组个体 如居民 国家 公司等 连续观察多
  • JavaScript中json对象和string对象之间相互转化

    json对象 复制代码 代码如下 var json aa true bb true var json1 aa b bb cc true dd true 1 js操作json对象 复制代码 代码如下 for var item in json
  • img服务器上的图片不显示不出来,img标签使用绝对路径无法显示图片

    说明 图片的磁盘路径斜杠使用右斜杠 而图片的网络路径使用左斜杠 注意加以区分 如果一张图片属于服务器图片或者网络图片 我们必须在img标签里使用网络路径 只有网络路径才可以通过浏览器发送请求 下载该图片到用户的浏览器临时路径中 才可以显示在
  • C++11-右值引用与移动语义

    右值引用与移动语义 一 右值引用概念 右值引用简单例子 左值引用与右值引用的比较 二 右值引用的使用场景 函数对于其内部局部对象的传值返回 insert push等接口 左值引用与右值引用总结 三 完美转发 四 新的类功能 默认成员函数 d
  • 【云原生 • Prometheus】Prometheus 注册中心Eureka服务发现原理

    云原生 Prometheus Prometheus 注册中心Eureka服务发现原理 云原生 Prometheus Prometheus 注册中心Eureka服务发现原理 概述 Eureka协议实现 总结 云原生 Prometheus Pr
  • Matlab line函数

    matlab line函数 1 比较常见的几种形式 line X Y line X Y Z line X Y Z PropertyName PropertyValue line PropertyName PropertyValue low
  • cocos命令生成apk

    1 配置好cocos命令中需要的andrid 环境命令 这些太普遍就不啰嗦 2 adt或许没有 zipalign exe 在生成 release版中需要这个文件来生成apk 路径D adt sdk tools 没有就下载一个 3 值得注意的
  • 深入了解NumPy 高级索引

    更多编程教程请到 菜鸟教程 https www piaodoo com 友情链接 好看站 http www nrso net NumPy 比一般的 Python 序列提供更多的索引方式 除了之前看到的用整数和切片的索引外 数组可以由整数数组
  • 分享 20 道关于 React 开发相关的面试题及答案

    React 面试可能你会觉得有点吓人 为了帮助您自信并准备好迎接下一次面试 我们列出了 20 个常见的 React 问题和参考答案 希望通过本篇文章的内容 能够帮助你重新温习你的 React 知识 复习重要概念 并为你的下一次面试做好更充分
  • 微信小程序并发的个人见解

    var http get url obj undefined gt var promise new Promise resolve reject gt wx request url baseUrl url method GET header
  • CSS 选择器

    h1 class center 标题居中 h1 p class center color 段落居中 颜色为红色 p 如果我们要在 html 元素中设置 css 样式 那么就需要需要在元素中设置选择器 即决定当前元素使用哪种样式 一般来说 常
  • django实训总结

    不知不觉中 一个学期又要结束了 上学期结束时的日子仿佛历历在目 没想到又迎来了一个学期的结束 这个学期依旧学习了python 让我继续加深了对python这门课的认识 实训让我觉得十分有意思 像打开了新的知识大门 Django结合了许多以前
  • 大学生竞赛项目

    编程 蓝桥杯 报名时间 10月 报名网址 https dasai lanqiao cn 中国软件杯大学生软件设计大赛 报名时间 5月 报名网址 http www cnsoftbei com 中国高校计算机大赛 报名时间 11月 报名网址 h
  • 钉钉开发之使用HTTP请求获取你的公网出口IP

    访问别人提供的网络服务时 对方出于安全性方面的考虑 可能会对请求的IP进行白名单限制 这时候需要提供机器的出口IP 比如目前微信公众号对于访问其接口需要先绑定开发者的服务器IP 这个IP实际上就是开发者服务器的出口IP 但是获取当前机器的公