dig

DNS 原理入门

若如初见. 提交于 2019-12-01 05:35:37
DNS 是互联网核心协议之一。不管是上网浏览,还是编程开发,都需要了解一点它的知识。 本文详细介绍DNS的原理,以及如何运用工具软件观察它的运作。我的目标是,读完此文后,你就能完全理解DNS。 一、DNS 是什么? DNS (Domain Name System 的缩写)的作用非常简单,就是根据域名查出IP地址。你可以把它想象成一本巨大的电话本。 举例来说,如果你要访问域名math.stackexchange.com,首先要通过DNS查出它的IP地址是151.101.129.69。 如果你不清楚为什么一定要查出IP地址,才能进行网络通信。 二、查询过程 虽然只需要返回一个IP地址,但是DNS的查询过程非常复杂,分成多个步骤。 工具软件dig可以显示整个查询过程。 $ dig math.stackexchange.com 上面的命令会输出六段信息。 第一段是查询参数和统计。 第二段是查询内容。 上面结果表示,查询域名math.stackexchange.com的A记录,A是address的缩写。 第三段是DNS服务器的答复。 上面结果显示,math.stackexchange.com有四个A记录,即四个IP地址。600是TTL值(Time to live 的缩写),表示缓存时间,即600秒之内不用重新查询。 第四段显示stackexchange.com的NS记录(Name

1591:数字计数

試著忘記壹切 提交于 2019-11-30 19:37:57
0--9依次DP 遇到当前i!=dig的时候也要继续dfs!!! 最容易忽略的一点:l==0的时候要加特判 /* reference: Date: 2019.10.08 sol: */ #include<bits/stdc++.h> using namespace std; #define int long long template <typename T>inline void rd(T &x){x=0;char c=getchar();int f=0;while(!isdigit(c)){f|=c=='-';c=getchar();}while(isdigit(c)){x=(x<<1)+(x<<3)+(c^48);c=getchar();}x=f?-x:x;} #define rep(i,a,b) for(int i=(a);i<=(b);++i) #define dwn(i,a,b) for(int i=(a);i>=(b);--i) #define mem(a,b) memset(a,b,sizeof(a)) #define ee(i,u) for(int i=head[u];i;i=e[i].next) int l,r,len; int dp[12+5][12*9+10]; int bit[12+5]; inline int dfs(int pos,int dig

Difficulty using Python's socket.gethostbyaddr()

给你一囗甜甜゛ 提交于 2019-11-30 18:59:00
I am trying to reverse dns a list of IPs using socket.gethostbyaddr() in python, which returns 'Unknown Host' for some values, but using dig for the same ip returns the Hostname. Also, dig seems to be significantly faster than using python module, is there any specific reasons for that? import socket # This returns 'Unknown Host' name, alias, addresslist = socket.gethostbyaddr('114.143.51.197') I'm sorry, but you are mistaken. 114.143.51.197 does not have a PTR record... therefore socket.gethostbyaddr() should throw an error... you certainly need a try / except clause that traps for socket

luoogu 3812

余生长醉 提交于 2019-11-30 12:19:53
补abc发现要会线性基。。。 先把这个点了。 还不懂为啥。 不想看。 颓。 只想睡觉。 #include <bits/stdc++.h> using namespace std; typedef long long ll; int n;ll a[55],dig[63],vis[63],sum; void add(ll x){ for(int i=52;i>=0;i--){ if(x>>i){ if(dig[i])x^=dig[i]; else{ dig[i]=x; break; } } } } int main(){ ios::sync_with_stdio(false); cin>>n; for(int i=1;i<=n;i++)cin>>a[i],add(a[i]); ll ans = 0; for(int i=52;~i;i--){ if((ans^dig[i])>ans)ans^=dig[i]; } cout<<ans<<endl; } 来源: https://www.cnblogs.com/MXang/p/11584489.html

[校内训练19_09_03]c Huge Counting

徘徊边缘 提交于 2019-11-30 03:44:58
题意 有一个定义在 k 维非负整点上的函数:$f(x_1,x_2,...,x_k):N_{0}^{k}->\{0,1\}$ ,定义方法如下: 若存在$j∈[1,k],x_j=0$,则$f(x_1,x_2,...,x_k)=0$ 若对$j∈[1,k]$都有$x_j=1$则$f(x_1,x_2,...,x_k)=1$ 否则$f(x_1,x_2,...,x_k)=(\sum_{j=1}^{k}{f(x_1,...,x_{j-1},x_j-1,x_{j+1},...,x_k)})mod 2$ 现在给出k,并对每一维坐标给出区间$l_i,r_i$,求: $\sum_{x_1∈[l_1,r_1],...,x_k∈[l_k,r_k]}{f(x_1,x_2,...,x_k)}$ $1\leq T \leq 10,1 \leq k \leq 9,1 \leq l_j,r_j \leq 10^{15}$。 思考 对于k,某个点的f值为1的充要条件是所有维度在二进制表示下没有交集,即$x_i\&x_j=0,i≠j$。 由于每个维度都有一个限制,不好算,因此我们容斥每个维度是否满足限制。这样,问题转化为选k个数,第i个数最多能选$a_i$个,每一个二进制位上最多有一个1的方案数。设f[i][0/1][S]表示从高位到低位填到第i个数,0/1是当前有没有选1,S是k个数是否达到上限的方案数。每次转移时

Difficulty using Python's socket.gethostbyaddr()

放肆的年华 提交于 2019-11-30 03:04:14
问题 I am trying to reverse dns a list of IPs using socket.gethostbyaddr() in python, which returns 'Unknown Host' for some values, but using dig for the same ip returns the Hostname. Also, dig seems to be significantly faster than using python module, is there any specific reasons for that? import socket # This returns 'Unknown Host' name, alias, addresslist = socket.gethostbyaddr('114.143.51.197') 回答1: I'm sorry, but you are mistaken. 114.143.51.197 does not have a PTR record... therefore socket

DNS信息收集-dig

怎甘沉沦 提交于 2019-11-29 18:01:47
命令: 所有DNS信息:dig mail.163.com any 筛选部分信息:dig +noall +answer mail.163.com | awk '{print &5}' 直接输出结果 反向查询:dig -x 220.181.12.209 查询bind版本:dig +noall +answer txt chaos VERSION.BIND @ns3.dnsv4.com 追踪DNS:dig +trace www.sina.com @8.8.8.8 直接通过根域,com域,sina.com域迭代查询 可通过官网查询相关版本漏洞渗透该dns服务器,获取相关dns信息 FQDN:full qualified domain name 全限定域名,带有主机名和域名 域名记录:A(IPv4), AAAA(IPv6下的A地址)C Name,NS,MX,PTR 来源: https://www.cnblogs.com/unknownguy/p/11525294.html

dig常用命令解释

落花浮王杯 提交于 2019-11-29 06:55:46
@<服务器地址>:指定进行域名解析的域名服务器; 例:dig @1.2.4.8 www.baidu.com -b<ip地址>:当主机具有多个IP地址,指定使用本机的哪个IP地址向域名服务器发送域名查询请求; -f<文件名称>:指定dig以批处理的方式运行,指定的文件中保存着需要批处理查询的DNS任务信息; -P:指定域名服务器所使用端口号; -t<类型>:指定要查询的DNS数据类型; -x<IP地址>:执行逆向域名查询; -4:使用IPv4; -6:使用IPv6; -h:显示指令帮助信息。 实例: C:\Users\FFHK>dig @1.2.4.8 www.baidu.com ; <<>> DiG 9.15.3 <<>> @1.2.4.8 www.baidu.com ; (1 server found) ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 19403 ;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 5, ADDITIONAL: 6 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION

Objective-C: DNS TXT Record

元气小坏坏 提交于 2019-11-29 05:21:15
I've been searching for a while without any success, how am I supposed to get a DNS TXT record for a domain in Objective-C? My goal is to get the same output as: dig -t txt google.com +short PS: No NSTask /pipping please! (I'm currently doing that but it's bad). The code can be written in C, I'll just write a wrapper later. I don't care about AppStore rules. Thank you! Use DNSServiceQueryRecord in dns_sd.h : #import <dns_sd.h> // ... DNSServiceRef serviceRef; DNSServiceQueryRecord(&serviceRef, 0, 0, "hmspl.de", kDNSServiceType_TXT, kDNSServiceClass_IN, queryCallback, NULL);

dig中文帮助

点点圈 提交于 2019-11-29 05:11:52
NAME(名称) dig — 发送域名查询信息包到域名服务器 SYNOPSIS(总览) dig [@server] domain [⟨query-type⟩] [⟨query-class⟩] [+⟨query-option⟩] [-⟨dig-option⟩] [%comment] DESCRIPTION(描述) Dig (domain information groper 域名信息搜索)是一个灵活的 命令行工具, 它可以用来从域名系统服务器中收集信息. Dig 有两种模式:简单交互模式 用于简单的查询,而批处理模式则可以对 包含多个查询条目的列表执行查询. 所有查询选项都可以从命令行输入. 通常简单的 dig 用法为下列格式: dig @server domain query-type query-class 这里: server 可为域名或者以点分隔的Internet地址. 如果省略该可选字段, dig 会尝试使用你机器的默认域名服务器. 注意: 如果指定了一个域名,那么将使用域名系统解析程序 (即BIND)来进行解析. 如果你的系统不支持DNS,那么可能 必须 指定一个以点分隔的地址.另外一种选择是, 如果在你配置的某个地方有一台这样的服务器, 那么你所要做的就是建立 /etc/resolv.conf 并在其中指明默认域名服务器的位置,这样 server 自身就可以解析了.参看