首页 > 其他分享 >订阅计划推送钉钉消息出现"oapi.dingtalk.com: Name or service not known"

订阅计划推送钉钉消息出现"oapi.dingtalk.com: Name or service not known"

时间:2023-10-16 14:44:41浏览次数:42  
标签:Name dingtalk IP 域名 service DNS IP地址 服务器 com

一、问题描述

BI系统需要每天将报表推送给钉钉用户,但是偶尔会出现推送失败的情况,提示oapi.dingtalk.com: Name or service not known,即钉钉域名解析出现错误,后续重新推送又成功了,该情况具有偶然性。可能的原因是:

1、钉钉IP地址是一个地址池,域名oapi.dingtalk.com对应多个IP地址,浏览器缓存的时候IP地址是A,当需要将oapi.dingtalk.com域名映射成IP地址之后,IP地址换成B,通过A地址去查找已经找不到钉钉服务器了,需要重新解析,可能解析会超时导致消息发送不出去,解决方法是在/etc/hosts中将A地址写到hosts文件中,之后推送时就直接找该A地址,即使这时oapi.dingtalk.com这时已经换成C地址,也可以通过A地址找到钉钉服务器。后续问题是:当IP池剔除A地址之后,不能通过A找到钉钉服务器,需要手动增加IP地址到hosts中。

 

二、相关知识点

DNS(Domain Name System)是域名系统。实际主机A与主机B之间是通过IP进行相互通信的,但为了方便记忆可以用一串字符串来代替IP,如www.baidu.com,但计算机只能识别纯数字构成的IP地址,所以DNS系统再将www.baidu.com转换成IP地址,即翻译。ping www.baidu.com如下,实际是连通主机153.3.238.102。

域名解析的工作流程

①用户登录www.baidu.com网址,浏览器在浏览器缓存或操作系统在hosts文件中查找是否存在网址映射,如果存在返回IP;若不存在,用户发出DNS解析请求给本地DNS服务器,询问该网址的IP

②本地DNS服务器收到请求,在本地DNS服务器缓存中查找网址映射,若存在则返回用户该网址IP;

若没有找到,本地DNS服务器请求其根域名服务器(知道所有顶级域名服务器的域名及IP),不解析,但返回.com顶级域名服务器(负责二级域名)的IP给本地DNS服务器。

扩展:第三个字符串com 是顶级域名,代表企业,是通用域名,全球仅13台

通用域名:com(公司企业)、net(网络提供商)、org(非盈利组织)、int(国际组织)、gov(美国政府部门)等

国家域名:cn(中国)、us(美国)、uk(英国)等

④本地DNS服务器收到.com服务器IP后,向该顶级服务器请求www.baidu.com的IP。顶级域名服务器收到请求后,返回负责baidu.com区域的NameServer服务器(baidu.com域名提供商的服务器)的IP地址。

⑥本地DNS服务器收到IP后,向NameServer服务器请求www.baidu.com的IP,NameServer服务器返回对应的IP地址

⑦本地DNS服务器收到www.baidu.com的IP地址后,将其缓存并但会给浏览器。

 

标签:Name,dingtalk,IP,域名,service,DNS,IP地址,服务器,com
From: https://www.cnblogs.com/muhai/p/17767017.html

相关文章

  • 报错:Could not resolve view with name 'xxx' in servlet with name 'dispatcherServl
    报错:Servlet.service()forservlet[dispatcherServlet]incontextwithpath[]threwexception[Couldnotresolveviewwithname'xxx'inservletwithname'dispatcherServlet']withrootcauseCouldnotresolveviewwithname'xxx&......
  • 下面是一个稍微复杂一些的 PHP 代码示例: <?php // 定义一个 Person 类 class Person
    下面是一个稍微复杂一些的PHP代码示例:<?php//定义一个Person类classPerson{private$name;private$age;//构造函数publicfunction__construct($name,$age){$this->name=$name;$this->age=$age;}//获取姓名publicfunctiong......
  • r - How do I order by row.names in dataframe R语言 排序
     new_df<-df[order(row.names(df)),]REF:https://stackoverflow.com/questions/20295787/how-can-i-use-the-row-names-attribute-to-order-the-rows-of-my-dataframe-in-rhttps://stackoverflow.com/questions/25194196/how-do-i-order-by-row-names-in-dataframe......
  • 应用系统-业务逻辑写入在分层结构中Service层
    应用系统-业务逻辑写入在分层结构中Service层      近日,关于我们某同学在研发过程中一些设计问题,再次回归老生常谈的问题:业务逻辑写在哪儿一层?过去二十年软件开发过程中,大部分开发者喜欢使用存储过程(SP),用SP解决一系列业务处理过程,在信息系统中时常听到有SP的存储。各大......
  • [AGC009B] Tournament 题解
    思路考虑树形\(\text{dp}\)。我们将每个人与把自己淘汰的人连边。得到一颗以一为根的树。由于我们需要求出必须赢的场数最多的那位选手,至少要赢多少场。考虑最多的限制。可以使用树型动态规划。每一次两个人比赛的代价为:\[dp_i=\max(dp_i,dp_j)+1\]这样就达成了最多的限......
  • 「闲话随笔」 C++ namespace K8He-Math version -1.0.0 is officially released!
    C++namespaceK8He-Mathversion-1.0.0isofficiallyreleased!写着玩的,不清楚是否有实用价值,看个乐就行,别D.有Bug可以自己调(怎么用感觉比较好看出来.namespaceMATH{ namespaceType{ usingi32=int; usingi64=longlong; usingu32=std::uint32_t;......
  • PHP命令空间namespace及use的用法实践总结
    使用namespace的目的:团队合作项目时,避免与团队其它成员新建的类发生冲突;个人负责项目时,避免前后新建的类发生冲突; 据个人理解,用到所需要的类时,需要先require或include引入,所以会发生类重定义的错误的前提是:两个相同命名的类都有被引入。目前有些php框架会自动加载(即include)所......
  • lower_case_table_names=1 mysql启动失败问题
    1先停掉mysql数据库2删除mysql数据,在初始话时,数据所在的位置3修改/etc/my.cnf配置,添加lower_case_table_names=14重新初始化./mysqld--user=mysql--basedir=/usr/local/mysql--datadir=/usr/local/mysql/data--initialize-insecure--lower-case-table-names=1;注意初始化......
  • Abp vNext : ApplicationService 复杂查询
    在Abp的ApplicationService中进行复杂查询示例:publicvirtualasyncTask<PagedResultDto<RawMaterialOutwarehouseRecordWithDetialsDto>>GetRawMaterialOutwarehouseRecordListAsync(GetRawMaterialOutwarehouseRecodsInputinput){var......
  • java框架中的controller层、dao层、domain层、service层、view层【转】
      1.Controller层:接口层,用户访问请求时对接。  Controller层负责具体的业务模块流程的控制,在此层里面要调用Serice层的接口来控制业务流程,控制的配置也同样是在Spring的配置文件里面进行,针对具体的业务流程,会有不同的控制器,我们具体的设计过程中可以将流程进行抽象归......