因IPv4和IPv6协议不同而引发的第三方接口调用失效的问题
记录一次因IPv4和IPv6协议不同而引发的第三方接口调用失效的问题,仅供大家参考!!!
背景介绍
公司有一个微信小程序,我做后端的,负责给小程序提供数据接口。后来因为一系列原因小程序要对接一个中控(类似数据中台的概念),所有的人员和组织架构等信息数据要从中控获取。
我按照第三方(中控)给的接口文档开始对接接口。一开始调用接口都挺顺利的,直到我们公司因为网络问题进行一次网络修复后问题就出现了。
排查问题
公司网络修复后的第一天来公司上班,开始又一天的接口对接,结果第三方获取token的接口请求不成功了。直接在浏览器上访问token的地址报403的错误。这让我很奇怪,昨天下班前还好好的,怎么今天早上就不行了。
1、我开始打断点,把接口的入参和接口的地址都打印出来发给与我对接的开发人员(中控的开发人员),经他确认这些参数和地址都没有错。还给我换了一个账号进行测试,还是不行。中控的开发人员自己测试时发现他们是可以调用的通的。
2、又自我怀疑是本地开发环境的问题,之后把代码给同事让他用自己的环境调用下,发现还是不行。
3、我又把代码放到公司的测试服务器上,结果调用接口成功。
经过上面的反复折腾还是没搞定,我就开始怀疑是不是网路问题,或则第三方屏蔽了我们公司的地址。
下班后我回家进行测试,发现在家里也是可以正常调用第三方接口的,由此确定问题应该是出现的网络环境中。
第二天去公司我就联系了第三方的运维让他们查看下是否有设置黑名单之类的屏蔽了我们公司的IP,经过排除没有黑名单。而且公司网管说,我们用的不是专线,也就不能屏蔽IP了。这时我就有点蒙,不知道咋回事了。我又ping了一下token接口的域名确保是通的。这个时候第三方的运维也发了一张他ping域名的截图,告诉我也是可以ping的通的。都能ping的通,我也就没在意就顺手把我ping的截图也发给了他。
还好我的“顺手”+运维同学的细心,发现我们ping域名后反馈的IP地址协议不一样,运维同事ping后反馈是以IPV4,而我是IPV6。这下真相了!!
我立马查看电脑的IP协议,果然勾上了IPV6。我把IPV6选项去掉后再次通过本地环境访问token接口——通了。
总结
第三方用的IPV4协议作为地址,公司用的是IPV6协议作为地址,两边协议不同导致请求第三方接口403。
因IPv4和IPv6协议不同而引发的第三方接口调用失效的问题的更多相关文章
- (转)协议森林04 地址耗尽危机 (IPv4与IPv6地址)
协议森林04 地址耗尽危机 (IPv4与IPv6地址) 作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! IP地址是IP协议的重要组 ...
- VLC测试IPv4 IGMP/IPv6 MLD协议
1 简述 VLC既可以充当流客户端,又可以充当流服务器,并且可以跨平台使用,是一款开源.免费的软件,基于GNU GPL许可证. 2 搭建组播服务器 第一步:运行程序后选择“媒体 串流”:第二步:通过 ...
- IPv6协议介绍
IPv6是为了解决基于IPv4的TCP/IP协议簇遇到的问题而推出的下一代IP协议.由于IPv4中采用的编制方式使得可用的网络地址和主机地址的数目远低于理论数目,随着全球互联网的快速发展,现有的IPv ...
- ios 兼容IPV4和IPV6网络通信
前言: 苹果官方出了新的规定,要求新上架的app都必须单独支持ipv6-only的网络. 准备工作: 搭建IPV6测试环境:http://blog.csdn.net/potato512/article ...
- 承载于以太网帧之上的数据包的解析——ARP、IPv4、IPv6
承接上一博文而来,继续解析网络数据包,对于承载在以太网上的三种协议进行了解析,主要是分为依据RFC定义的标准先解析头部数据,然后得到有效载荷,即为协议包括的实体数据,更上层进行进一步处理. 一.ARP ...
- TCP/IP读书笔记(4) IPv4和IPv6 路由选择
TCP/IP读书笔记(4) IPv4和IPv6 路由选择 网络层是位于链路层之上,TCP/IP模型中网络层的核心协议是IP协议(Internet protocol). 目前主流的IP协议是IPv4(I ...
- ****** 四十二 ******、软设笔记【网络基础】-IPv6协议、常用的网络协议
一.IPv6协议 IPv6协议,全称"互联网协议第6版",即下一代的网际协议. 相对于IPv4来说,IPv6协议主要改进: *扩展的地址.IPv6地址长度为128位. *IPv6使 ...
- IPv4和IPv6简单对比介绍(转载)
原链接:https://baijiahao.baidu.com/s?id=1570208896149974&wfr=spider&for=pc 在配置计算机网络,特别是内网的时候,有时 ...
- 网络类型IPv4和IPv6什么意思?区别?
在windows 7以上系统中,在设置本地IP地址的时候经常会看到同事含有IPV4协议项与IPV6协议项,并不同于以往windows xp系统中仅有TCP/IP协议项,不少朋友都觉得比较奇怪,询问编辑 ...
- [Linux]Linux下开启snmp支持IPV4和IPV6
SNMP简介 简单网络管理协议(SNMP),由一组网络管理的标准组成,包含一个应用层协议(application layer protocol).数据库模型(database schema)和一组资源 ...
随机推荐
- Redis启用认证
要在Redis中启用认证,您需要在Redis配置文件中设置requirepass指令.以下是步骤: 找到Redis配置文件.这通常是redis.conf,可能位于/etc/redis/或/etc/目录 ...
- NLP文本匹配任务Text Matching [无监督训练]:SimCSE、ESimCSE、DiffCSE 项目实践
NLP文本匹配任务Text Matching [无监督训练]:SimCSE.ESimCSE.DiffCSE 项目实践 文本匹配多用于计算两个文本之间的相似度,该示例会基于 ESimCSE 实现一个无监 ...
- Umi配置路由
一.Umi路由的概念 在 Umi 中,你可以在 config/config.js 文件中使用 routes 属性来配置路由.routes 属性是一个数组,每个元素都表示一个路由对象.每个路由对象都包含 ...
- Webpack基础学习(一) (未完结)
一.Webpack介绍与基本使用 1.1.Webpack是什么? Webpack 是一个静态资源打包工具. 它会以一个或多个文件作为打包的入口,将我们整个项目所有文件编译组合成一个或多个文件输出出去. ...
- WebAssembly核心编程[4]: Memory
由于Memory存储的是单纯的二进制字节,所以原则上我们可以用来它作为媒介,在wasm模块和数组程序之间传递任何类型的数据.在JavaScript API中,Memory通过WebAssembly.M ...
- 小知识:解决EXP-00003的报错
客户有个需求:某用户程序(含exp导出任务)报错EXP-00003,这个错误并不会影响整个导出任务的结束,但由于是晚上的定时任务,该错误会触发夜间告警.客户想通过数据库层面来规避掉此错误. 事实上,这 ...
- 《ASP.NET Core 微服务实战》-- 读书笔记(第10章)
第 10 章 应用和微服务安全 云应用意味着应用运行所在的基础设施无法掌控,因此安全不能再等到事后再考虑,也不能只是检查清单上毫无意义的复选框 由于安全与云原生应用密切相关,本章将讨论安全话题,并用示 ...
- 《SagDRE: Sequence-Aware Graph-Based Document-Level Relation Extraction with Adaptive Margin Loss》论文阅读笔记
代码 原文地址 关键参考文献: Document-Level Relation Extraction with Adaptive Thresholding and Localized Context ...
- 机器学习基础03DAY
特征降维 降维 PCA(Principal component analysis),主成分分析.特点是保存数据集中对方差影响最大的那些特征,PCA极其容易受到数据中特征范围影响,所以在运用PCA前一定 ...
- npm无法安装node-sass 的问题
安装 node-sass 的问题呈现:4.9.0版本无法下载 Downloading binary from https://github.com/sass/node-sass/releases/do ...