当前位置: 首页 > wzjs >正文

阿里巴巴网站建设搜百度盘

阿里巴巴网站建设,搜百度盘,网站负责人核验照片,网页设计就是做网站优化的吗1 Linux DNS规范 Linux上并没有一个单独的方法可以完成DNS查询工作;没有一个有这样的明确接口的核心系统调用system call。不过,glibc (nss)的getaddrinfo (3), gethostbyname (3)等相关API (RFC3493)提供了DNS查询功能。 1)不支持nscd&#…

1 Linux DNS规范
Linux上并没有一个单独的方法可以完成DNS查询工作;没有一个有这样的明确接口的核心系统调用system call。不过,glibc (nss)的getaddrinfo (3), gethostbyname (3)等相关API (RFC3493)提供了DNS查询功能。
1)不支持nscd(name service cache daemon)服务,那么这2个函数接口通过文件/etc/resolv.conf获取DNS服务器的IP地址,然后通过socket通信发送请求到该DNS IP地址去获取待查询域名的IP地址。
2)支持nscd服务(or dnsmasq),这2个函数接口发送请求给nscd,nscd再返回响应给请求者。
3)ping uses glibc gethostbyname()。

2 Android netd DNS
2.1 Android 4.3 DNS
Android 4.3 incorporated a somewhat confusing series of commits under the heading of "dns cache per interface," which effectively causes all Bionic DNS requests to be proxied through netd.

ANDROID_DNS_MODE=local
dumpsys connectivity
dumpsys netd
ndc tether dns set
ndc tether dns list

iptables -t nat -I OUTPUT -p udp \
--dport 53 -j DNAT \
--to-destination 192.168.1.5:53
iptables -t nat -I OUTPUT -p tcp \
--dport 53 -j DNAT \
--to-destination 192.168.1.5:53

This works by intercepting the DNS requests meant for the remote nameserver and redirecting it to the local DNS server. 

2.2 Android netd DNS
libcore/ojluni/src/main/java/java/net/InetAddress.java
netd中dns server设置文件:ResolverController.cpp
netd中域名解析文件:DnsProxyListener.cpp

Figure 2-1 Android netd DNS

2.3 libc DNS解析函数
Android bionic: based on OpenBSD, b means BSD
bionic/libc/dns/net/getaddrinfo.c
getaddrinfo(): IPv4 and IPv6
bionic/libc/dns/net/getnameinfo.c
getnameinfo()
bionic/libc/dns/net/gethnamaddr.c
gethostbyname(): only IPv4, gethostbyname_r(), r means reentry

通过netd获取DNS服务器的IP地址(Ubuntu通过进程dnsmasq和配置文件/etc/resolv.conf),然后构建DNS请求包,查询域名对应的IP地址,并且按照netId的分类缓存到netd中:
bionic/libc/dns/net/gethnamaddr.c
gethostbyname_internal_real()

2.4 Android三个网络基础库DNS解析
1) JDK HttpURLConnection
2) Apache HttpClient,Android 6.0之后不再支持HttpClient
3) OkHttp, third-party library

以上3个类库都会调用下面的JDK函数
InetAddress.getByName()
getaddrinfo() - libc DNS parser API

2.5 DHCP
DHCP Offer报文Options中包含了DNS Server地址

Android GB system/core/libnetutils/dhcp_utils.c
int dhcp_do_request(...,
in_addr_t *dns1, in_addr_t *dns2...)

3 Android netId
3.1 获取网络接口的netId
netd中将接口名(wlan0、eth0等)转化为netId的函数:
server/NetworkController.cpp
NetworkController::getNetworkForInterface(
const char* interface)

3.2 代码示例
server/CommandListener.cpp
函数CommandListener::NetworkCommand::runCommand()的最后添加如下的代码:
//     0            1                2
// network query_netid if_name
if (!strcmp(argv[1], "query_netid")) {
    if (argc < 3) {
        return syntaxError(client,
            "Missing argument");
    }
    int _netId =
        gCtls->netCtrl.getNetworkForInterface(
            argv[2]);
    char msg[16] = {0};
    int retval = snprintf(msg, 15, "%d", _netId);
    if (retval > 0) {
        client->sendMsg(
            ResponseCode::CommandOkay,
            msg, false);
        return 0;
    } else {
        return operationError(client,
            "Can not get netId", retval);
    }
}
用法:ndc network query_netid wlan0

4 ndc
4.1 查询可用命令表
ndc interface list

4.2 清除netd DNS缓存
ndc resolver flushif eth0
ndc resolver flushdefaultif -- flush default DNS resolver

Android 8.0没有导出刷新DNS缓存的接口,可以调用如下API添加。
bionic/libc/dns/resolv/res_cache.c
_resolv_flush_cache_for_net(netId)

4.3 设置netd DNS
ndc resolver setnetdns <netid> <domain> <dns1> <dns2> ...
ndc resolver setnetdns eth0 "" 8.8.8.8 192.168.1.1
ndc resolver setnetdns eth0 localdomain 8.8.8.8 192.168.1.1

5 Abbreviations
dnsmasq: DNS masquerade
mdnsd: multicast DNS,组播DNS
ndc:Native Daemon Connector
ojluni:Android libcore中的模块,包含OpenJDK、Language、Util、Net、IO

http://www.dtcms.com/wzjs/36494.html

相关文章:

  • 网站公司怎么建站苏州网站开发公司
  • 武汉p2p网站建设公司百度自动搜索关键词软件
  • 郑州营销型网站建设公司企业网络规划设计方案
  • 个人如何建立网站怎么建立自己的网站平台
  • 最新热门事件seo渠道是什么意思
  • 滨州市建设局网站企业营销培训课程
  • 网站建设单位是什么电子商务专业就业方向
  • 网站域名防劫持怎么做宁波seo外包推广渠道
  • 做文字图片的网站百度推广代理商加盟
  • 摄影网站设计论文免费推广的网站有哪些
  • 上海黄浦网站建设举三个成功的新媒体营销案例
  • 行业门户网站建设方案书googleseo排名公司
  • 淘宝网页版官网东莞做网站排名优化推广
  • 制作php网站用什么软件微信朋友圈广告代理
  • 桂林网站建设官网成都网络推广哪家好
  • 网站的毕业设计怎么做站长工具域名查询ip
  • 网页前端培训aso应用商店优化原因
  • 手机建站哪家好怎么做网站链接
  • 什么系统网站好新媒体运营
  • 东莞做企业宣传网站肇庆seo按天计费
  • 夸克看网站要钱吗推荐一个seo优化软件
  • wordpress调用网站副标题北京网站优化步骤
  • 做网盟的网站必须备案广告加盟
  • 广告设计网站官网花生壳免费域名注册
  • 信息技术网站建设专业宁波seo在线优化方案
  • 网页设计培训费用google优化师
  • php手机网站开发工具线上推广员是做什么的
  • 做网站用什么开发工具国内优秀个人网站欣赏
  • 湖南住房和城乡建设厅网站首页外贸网站建设优化推广
  • 网站管理系统安装 -淘宝怎么设置关键词搜索