我需要查询公共项目提供的数据集。我创建了自己的项目并将他们的数据集添加到我的项目中。有一个名为:的表domain_public。当我查询此表时,出现此错误:
Query Failed
Error: Not found: Dataset my-project-name:domain_public was not found in location US
Job ID: my-project-name:US.bquijob_xxxx
Run Code Online (Sandbox Code Playgroud)
我来自非美国国家。请问这是什么问题以及如何解决?
编辑 1:
我将处理位置更改为asia-northeast1(我在新加坡)但同样的错误:
Error: Not found: Dataset censys-my-projectname:domain_public was not found in location asia-northeast1
Run Code Online (Sandbox Code Playgroud)
这是我的项目和公共项目的视图censys-io:
请指教。
编辑 2: 我用来键入的查询基于 censys教程是:
#standardsql
SELECT domain, alexa_rank
FROM domain_public.current
WHERE p443.https.tls.cipher_suite = 'some_cipher_suite_goes_here';
Run Code Online (Sandbox Code Playgroud)
当我将FROM条款更改为:
FROM `censys-io.domain_public.current`
Run Code Online (Sandbox Code Playgroud)
最后一行:
WHERE p443.https.tls.cipher_suite.name = 'some_cipher_suite_goes_here';
Run Code Online (Sandbox Code Playgroud)
有效。我是否应该理解我应该始终包括projectname.dataset.table(如果我使用正确的术语)并指出 Censys 的错字?或者出于某种原因,这是这个项目的特例吗?
如果我在正则表达式中匹配一个单词,'Strict-Transport'我如何使它不区分大小写?除了为每个字符放置两个字符大小写 [Ss] 之外,还有其他方法吗,因为它与首字母无关,但所有字符都可以出现在任何情况下?
我看了以前的帖子,但没有像我的情况。例如,这篇文章展示了如何在使用字符列表时使正则表达式不区分大小写[]。但我的情况是正则表达式中的一个词。
我想使用密码字符串创建自己的密码套件列表。如果我在函数中只放入一个字符串,则以下代码将起作用set_ciphers。但我想要一份定制的密码列表。还有其他格式,例如:ALL:!COMPLEMENTOFDEFAULT:!eNULL但这并不能达到我需要的目的。我有一个不同密码的自定义列表,无法使用第二种格式进行组合。
import socket, ssl
import pprint
context = ssl.create_default_context()
cipher = ['DHE-RSA-AES128-SHA', 'DHE-RSA-AES256-SHA', 'ECDHE-ECDSA-AES128-GCM-SHA256']
context.set_ciphers(cipher)
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
domain = 'google.com'
sslSocket = context.wrap_socket(s, server_hostname = domain)
sslSocket.connect((domain, 443))
sslSocket.close()
print('closed')
Run Code Online (Sandbox Code Playgroud)
该函数可以在这里set_ciphers找到。
我从源代码安装了 python 3.6。Python 似乎工作正常,但我无法导入 openssl 1.1.1(我需要使用的预发行版)。我认为存在路径问题但不确定。当我尝试从 python 导入 ssl 时,这是我得到的输出:
~/Downloads/Python-3.6.5$ python3
Python 3.6.5 (default, May 9 2018, 15:43:39)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import ssl
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python3.6/ssl.py", line 101, in <module>
import _ssl # if we can't import it, let the error propagate
ModuleNotFoundError: No module named '_ssl'
Run Code Online (Sandbox Code Playgroud)
有什么建议?
当我安装 openssl 时,我抓取了源代码:
./config
sudo make
sudo …Run Code Online (Sandbox Code Playgroud) 在 python ssl 中,可以配置 TLS 客户端的密码套件和版本。密码套件使用 进行设置 context.set_ciphers(ciphers),版本使用 进行设置context.options。
为了确保从设置中,人们可以使用 获取客户端中的密码(甚至在握手之前,这是为了设置客户端)context.get_ciphers()。
我的问题:如何获得客户端支持的协议。请注意,我没有使用默认版本。我通过排除某些版本来更改它们context.options。例如,此语句从我的客户端中排除 TLS 1.1:
context.options |= ssl.OP_NO_TLSv1_1
Run Code Online (Sandbox Code Playgroud)
我想确保我的客户端 TLS 版本的形成方式与我在密码中使用的方式相同context.get_ciphers()。我有什么办法可以这样做吗?
我需要在Ubuntu 16.04中使用openssl-1.1.1尝试python 3.7。python和openssl版本都是预发行版本。按照上一篇文章中有关如何统计将openssl链接到python 的说明,我下载了opnssl-1.1.1的源代码。然后导航到openssl的源代码并执行:
./config
sudo make
sudo make install
Run Code Online (Sandbox Code Playgroud)
然后,编辑Modules/Setup.dist以取消注释以下行:
SSL=/usr/local/ssl
_ssl _ssl.c \
-DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
-L$(SSL)/lib -lssl -lcrypto
Run Code Online (Sandbox Code Playgroud)
然后下载python 3.7源代码。然后,在源代码中导航并执行:
./configure
make
make install
Run Code Online (Sandbox Code Playgroud)
执行后make install,在终端输出的末尾出现此错误:
./python: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory
generate-posix-vars failed
Makefile:596: recipe for target 'pybuilddir.txt' failed
make: *** [pybuilddir.txt] Error 1
Run Code Online (Sandbox Code Playgroud)
我不知道问题出在哪里,我需要做什么。
我需要将程序输出写入文件。但是,某些字段已经包含空格、逗号、分号、制表符。所以我不想使用空格、制表符、逗号作为字段分隔符。数据来自网络,因此服务器管理员可能使用错误的格式。
我想使用任何虚构的字符串,比如我的名字。但如果输出可能被其他研究人员等使用,这可能是不专业的。
对于这个问题有什么建议吗?如果我害怕使用逗号、分号、制表符、空格作为分隔符,我应该使用什么?
编辑: 对于建议使用 json 或 csv 模块的答案,请注意我想将文件加载到 MySQL 数据库中。我只能向 MySQL 指定字段由 [某些分隔符] 分隔。我还需要一个简单的解决方案。
我需要pycrypto,因为需要在dnspython库中使用一些函数。我在网上找到了一些帖子,表明它pycrypto已经死了。但是,我需要dnspython并且别无选择,只能使用它。我什至尝试安装,pycryptodome因为他们建议它是替代品,pycrypto但我使用dnspython库的程序引发了错误:
Traceback (most recent call last):
File "test-3-dnssec.py", line 40, in <module>
dns.dnssec.validate(answer[0],answer[1],{name:answer[0]})
File "C:\Python36\lib\site-packages\dns\dnssec.py", line 417, in _validate
_validate_rrsig(rrset, rrsig, keys, origin, now)
File "C:\Python36\lib\site-packages\dns\dnssec.py", line 371, in _validate_rrsig
if pubkey.verify(digest, sig):
File "C:\Python36\lib\site-packages\Crypto\PublicKey\RSA.py", line 372, in verify
raise NotImplementedError("Use module Crypto.Signature.pkcs1_15 instead")
NotImplementedError: Use module Crypto.Signature.pkcs1_15 instead
Run Code Online (Sandbox Code Playgroud)
根据类似的错误,这是因为使用pycryptodome而不是pycrypto. Pycryptodome就我而言,它不是 pycrypto 的替代品。
我安装了 Visual Studio 2017。我按照库的gihub 页面 …
我有一个json文件。它的简化版本如下所示:
{
"host": "a.com",
"ip": "1.2.2.3",
"port": 8
}
{
"host": "b.com",
"ip": "2.5.0.4",
"port": 3
}
{
"host": "c.com",
"ip": "9.17.6.7",
"port": 4
}
Run Code Online (Sandbox Code Playgroud)
我运行这个脚本parser.py来解析它:
import json
from pprint import pprint
with open('myfile.json') as f:
data = json.load(f)
pprint(data)
Run Code Online (Sandbox Code Playgroud)
但我收到此错误:
Traceback (most recent call last):
File "parser.py", line 5, in <module>
data = json.load(f)
File "/usr/lib/python3.6/json/__init__.py", line 299, in load
parse_constant=parse_constant, object_pairs_hook=object_pairs_hook, **kw)
File "/usr/lib/python3.6/json/__init__.py", line 354, in loads
return _default_decoder.decode(s)
File "/usr/lib/python3.6/json/decoder.py", line 342, …Run Code Online (Sandbox Code Playgroud) 我正在尝试加载格式化为字典的字符串(实际程序从文件中读取这一行,它是一个非常大的文件,我无法手动修改)。
我需要将字符串行转换为 json 对象,以便我可以检查特定键的值,例如myJson[Date].
这是脚本:
import json
mystring = "{'Date': 'Fri, 19 Apr 2019 03:58:04 GMT', 'Server': 'Apache/2.4.39', 'Accept-Ranges': 'bytes'}"
mystring = json.dumps(mystring)
myJson = json.loads(mystring)
print(str(myJson.keys()))
print(str(myJson))
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
AttributeError: 'str' object has no attribute 'keys'
Run Code Online (Sandbox Code Playgroud)
我怀疑mystring格式不符合,单引号应该是双引号?鉴于我有大量数据,我不能简单地使用简单的搜索/替换将单冒号替换为双冒号,因为单冒号可能包含在我不应修改的值中。如果这是问题的原因,有没有办法只替换键/值对的冒号而不触及值中的冒号?我希望这不是问题。
python ×8
ssl ×4
openssl ×3
json ×2
python-3.x ×2
sockets ×2
tls1.2 ×2
cryptography ×1
dictionary ×1
file-writing ×1
parsing ×1
pycrypto ×1
pyopenssl ×1
regex ×1
separator ×1