记录一次因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协议不同而引发的第三方接口调用失效的问题的更多相关文章

  1. (转)协议森林04 地址耗尽危机 (IPv4与IPv6地址)

    协议森林04 地址耗尽危机 (IPv4与IPv6地址) 作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! IP地址是IP协议的重要组 ...

  2. VLC测试IPv4 IGMP/IPv6 MLD协议

    1 简述 VLC既可以充当流客户端,又可以充当流服务器,并且可以跨平台使用,是一款开源.免费的软件,基于GNU GPL许可证. 2 搭建组播服务器 第一步:运行程序后选择“媒体  串流”:第二步:通过 ...

  3. IPv6协议介绍

    IPv6是为了解决基于IPv4的TCP/IP协议簇遇到的问题而推出的下一代IP协议.由于IPv4中采用的编制方式使得可用的网络地址和主机地址的数目远低于理论数目,随着全球互联网的快速发展,现有的IPv ...

  4. ios 兼容IPV4和IPV6网络通信

    前言: 苹果官方出了新的规定,要求新上架的app都必须单独支持ipv6-only的网络. 准备工作: 搭建IPV6测试环境:http://blog.csdn.net/potato512/article ...

  5. 承载于以太网帧之上的数据包的解析——ARP、IPv4、IPv6

    承接上一博文而来,继续解析网络数据包,对于承载在以太网上的三种协议进行了解析,主要是分为依据RFC定义的标准先解析头部数据,然后得到有效载荷,即为协议包括的实体数据,更上层进行进一步处理. 一.ARP ...

  6. TCP/IP读书笔记(4) IPv4和IPv6 路由选择

    TCP/IP读书笔记(4) IPv4和IPv6 路由选择 网络层是位于链路层之上,TCP/IP模型中网络层的核心协议是IP协议(Internet protocol). 目前主流的IP协议是IPv4(I ...

  7. ****** 四十二 ******、软设笔记【网络基础】-IPv6协议、常用的网络协议

    一.IPv6协议 IPv6协议,全称"互联网协议第6版",即下一代的网际协议. 相对于IPv4来说,IPv6协议主要改进: *扩展的地址.IPv6地址长度为128位. *IPv6使 ...

  8. IPv4和IPv6简单对比介绍(转载)

    原链接:https://baijiahao.baidu.com/s?id=1570208896149974&wfr=spider&for=pc 在配置计算机网络,特别是内网的时候,有时 ...

  9. 网络类型IPv4和IPv6什么意思?区别?

    在windows 7以上系统中,在设置本地IP地址的时候经常会看到同事含有IPV4协议项与IPV6协议项,并不同于以往windows xp系统中仅有TCP/IP协议项,不少朋友都觉得比较奇怪,询问编辑 ...

  10. [Linux]Linux下开启snmp支持IPV4和IPV6

    SNMP简介 简单网络管理协议(SNMP),由一组网络管理的标准组成,包含一个应用层协议(application layer protocol).数据库模型(database schema)和一组资源 ...

随机推荐

  1. 【windows Server 2019系列】 构建IIS服务器

    个人名片: 对人间的热爱与歌颂,可抵岁月冗长 Github‍:念舒_C.ying CSDN主页️:念舒_C.ying 个人博客 :念舒_C.ying Web服务器也称为WWW(World Wide W ...

  2. 从python3到python2的踩坑

    为什么要从py3到py2 背景:之前自学写过一些py3,而且我写的工具是基于python3来写的,但是公司项目是使用python2版本,希望已有工具或者新写的工具能同时在py2和py3上执行,所以记录 ...

  3. Unity Editor自定义菜单排序(MenuItem Order)

    扩展Unity的菜单MenuItem MenuItem 属性用于向主菜单和检视面板上下文菜单添加菜单项. 该 MenuItem 属性能够将任何静态函数转变为菜单命令,仅静态函数可使用 MenuItem ...

  4. 【五】gym搭建自己的环境之寻宝游戏,详细定义自己myenv.py文件以及算法实现

    相关文章: 相关文章: [一]gym环境安装以及安装遇到的错误解决 [二]gym初次入门一学就会-简明教程 [三]gym简单画图 [四]gym搭建自己的环境,全网最详细版本,3分钟你就学会了! [五] ...

  5. 编译Apache服务部署静态网站

    Apache是世界使用排名第一的Web服务器软件,它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一.它快速.可靠并且可通过简单的API扩充, ...

  6. Java多线程-ThreadPool线程池-3(五)

    除了可以通过ThreadPoolExecutor自定义线程池外,同Stream API中的Collectors一样,多线程里的Executors类也提供了一组相关的线程池工具,可以直接拿来用,不用考虑 ...

  7. CORS小结

    1.说明 https://www.cnblogs.com/xuanyuan/p/12979841.html 该文基于故事图文并茂地讲述了跨域的前生今世,因为文章是故事形式,里面的一些要点都只是一提而过 ...

  8. 深空物联网通信中视频流的智能多路TCP拥塞控制|文献阅读|文献分析和学习|拥塞控制|MPTCP|SVC

    前言 那么这里博主先安利一些干货满满的专栏了! 首先是博主的高质量博客的汇总,这个专栏里面的博客,都是博主最最用心写的一部分,干货满满,希望对大家有帮助. 高质量博客汇总https://blog.cs ...

  9. 【算法】【动态规划】动规dp解决不同路径两道经典OJ笔试题【力扣62-力扣63】超详细的动态规划入门详解,掌握动态规划的解题方法

    [算法][动态规划]动规dp解决不同路径两道经典OJ笔试题[力扣62-力扣63]超详细的动态规划入门详解,掌握动态规划的解题方法 作者: @小小Programmer 这是我的主页:@小小Program ...

  10. NVME(学习笔记三)—PMR

    PMR(Persistent Memory Region)持久性内存区域 NVM Express在2019年完成了NVMe 1.4规范的制定,新的NVMe协议带来了大量的全新特性,尤其在纠错.强化性能 ...