小编tra*_*lad的帖子

UnicodeDecodeError:'utf8'编解码器无法解码字节0x9c

我有一个套接字服务器,应该从客户端接收UTF-8有效字符.

问题是一些客户端(主要是黑客)正在通过它发送所有错误的数据.

我可以很容易地区分真正的客户端,但我正在记录所有发送的数据文件,以便我以后可以分析它.

有时我会得到这样的字符œ导致UnicodeDecodeError错误.

我需要能够使用或不使用这些字符来生成字符串UTF-8.


更新:

对于我的特殊情况,套接字服务是一个MTA,因此我只希望接收ASCII命令,如:

EHLO example.com
MAIL FROM: <john.doe@example.com>
...
Run Code Online (Sandbox Code Playgroud)

我用JSON记录了所有这些.

然后一些没有良好意图的人决定出售各种垃圾.

这就是为什么对于我的特定情况,剥离非ASCII字符是完全可以的.

python linux python-unicode

257
推荐指数
8
解决办法
63万
查看次数

GIT在特定提交之前获取提交哈希

git 1.7.1

git show <hash>:<file> 根据提供的提交哈希给我文件

我试图弄清楚如何在我的哈希值之前下注前一次提交的文件.

我知道我总是可以使用它log来获取所有哈希并找出我需要的那个但是在我的情况下这不是一个好的解决方案,因为我试图最小化我需要为性能问题做的命令数量.

想知道是否有一个简单的方法.

git shell centos

28
推荐指数
1
解决办法
1万
查看次数

从ZIP字符串中提取文件

我有一个包含一个XML文件的zip文件的BASE64字符串.

关于如何在不必处理磁盘上的文件的情况下获取XML文件内容的任何想法?

我非常希望将整个过程保留在内存中,因为XML只有1-5k.

必须编写zip,提取XML然后加载它并删除所有内容会很烦人.

php

20
推荐指数
2
解决办法
2万
查看次数

python套接字服务器/客户端协议与不稳定的客户端连接

我有一个线程python套接字服务器,为每个连接打开一个新线程.

线程是基于问答的非常简单的通信.基本上客户端发送初始数据传输,服务器将其运行一个外部应用程序,对传输执行操作并返回服务器将发回的回复,并且循环将再次开始直到客户端断开连接.

现在因为客户端将在移动电话上,因此连接不稳定,我不再连接开放线程,并且因为循环以recv开始,所以很难以这种方式打破丢失的连接.

我正在考虑在recv之前添加一个send来测试连接是否仍然存在但是如果客户端在我的故障安全发送后断开连接,这可能根本不起作用,因为客户端仅每5秒发送一次数据流.

我注意到recv有时会破坏但并非总是如此,在这种情况下,我会使用资源留给僵尸线程.

这也可能是我的系统被DOS操作的一个可靠漏洞.我已经浏览了python手册和Google搜索,因为我周四试图找到一些东西,但我找到的大多数东西都与客户端和非阻塞模式有关.

任何人都可以指出我正确的方向,以解决这个问题吗?

代码示例:

监听器:

serversocket = socket(AF_INET, SOCK_STREAM)
serversocket.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1)
serversocket.bind(addr)
serversocket.listen(2)
logg("Binded to port: " + str(port))

# Listening Loop
while 1:
  clientsocket, clientaddr = serversocket.accept()
  threading.Thread(target=handler, args=(clientsocket, clientaddr,port,)).start()

# This is useless as it will never get here
serversocket.close()
Run Code Online (Sandbox Code Playgroud)

处理器:

  # Socket connection handler (Threaded)
  def handler(clientsocket, clientaddr, port):
    clientsocket.settimeout(15)

    # Loop till client closes connection or connection drops
    while 1:
      stream = ''
      while 1:
        ending = stream[-6:] # get stream …
Run Code Online (Sandbox Code Playgroud)

python sockets

11
推荐指数
1
解决办法
2955
查看次数

SMTP点填充..何时何地做?

我在发送电子邮件时发现有关点填充的相互矛盾的信息.

  1. 如果该行包含一个点,则填充一个点(以避免提前终止)
  2. 在每个行中填充一个点,以点开头
  3. 只将一个点加到(1)和引用的可打印消息部分的每一行部分

任何人都可以澄清吗?

email smtp rfc

11
推荐指数
2
解决办法
7968
查看次数

xml.etree.ElementTree获取节点深度

XML:

<?xml version="1.0"?>
<pages>
    <page>
        <url>http://example.com/Labs</url>
        <title>Labs</title>
        <subpages>
            <page>
                <url>http://example.com/Labs/Email</url>
                <title>Email</title>
                <subpages>
                    <page/>
                    <url>http://example.com/Labs/Email/How_to</url>
                    <title>How-To</title>
                </subpages>
            </page>
            <page>
                <url>http://example.com/Labs/Social</url>
                <title>Social</title>
            </page>
        </subpages>
    </page>
    <page>
        <url>http://example.com/Tests</url>
        <title>Tests</title>
        <subpages>
            <page>
                <url>http://example.com/Tests/Email</url>
                <title>Email</title>
                <subpages>
                    <page/>
                    <url>http://example.com/Tests/Email/How_to</url>
                    <title>How-To</title>
                </subpages>
            </page>
            <page>
                <url>http://example.com/Tests/Social</url>
                <title>Social</title>
            </page>
        </subpages>
    </page>
</pages>
Run Code Online (Sandbox Code Playgroud)

代码:

// rexml is the XML string read from a URL
from xml.etree import ElementTree as ET
tree = ET.fromstring(rexml)
for node in tree.iter('page'):
    for url in node.iterfind('url'):
        print url.text
    for title in node.iterfind('title'):
        print title.text.encode("utf-8")
    print …
Run Code Online (Sandbox Code Playgroud)

python xml xml-parsing

10
推荐指数
3
解决办法
9032
查看次数

如何在Android中翻转ImageView?

我正在开发一个应用程序,我需要ImageView触摸触摸并将控制转移到第二个活动.

请帮我.

我尝试了很多,但我没有成功.

谢谢大家.

android android-imageview

7
推荐指数
3
解决办法
2万
查看次数

spamassassin和spamc的结果不同

我已经安装并配置和训练了我的spamassassin,所有似乎工作得很好.然后,当我尝试通过spamc部署它时,我得到了部分结果.

为什么会这样?

我喜欢spamc,因为我可以让它只输出报告,但似乎缺少支票:SPF,DKIM,BAYES.

我没有设法弄明白或在网上找到任何类似的报道.这已经持续了好几天了,我的想法不合时宜.

spamassassin工作原理:

# spamassassin -t < /path/to/spam.eml

Content analysis details:   (3.3 points, 5.0 required)

 pts rule name              description
---- ---------------------- --------------------------------------------------
 0.0 FSL_HELO_NON_FQDN_1    FSL_HELO_NON_FQDN_1
 0.7 SPF_SOFTFAIL           SPF: sender does not match SPF record (softfail)
 0.8 BAYES_50               BODY: Bayes spam probability is 40 to 60%
                            [score: 0.5000]
 0.5 MISSING_MID            Missing Message-Id: header
 0.0 HELO_NO_DOMAIN         Relay reports its domain incorrectly
 1.4 MISSING_DATE           Missing Date: header
Run Code Online (Sandbox Code Playgroud)

spamc only partial:

# spamc -R  < /path/to/spam.eml

Content analysis details:   (1.5 points, 5.0 …
Run Code Online (Sandbox Code Playgroud)

linux email centos spamassassin

7
推荐指数
1
解决办法
3236
查看次数

正则表达式匹配主域名

我需要能够识别任何子域的域名.

例子:

对于所有这些我只需匹配example.co/ example.com/ example.org/ example.co.uk/ example.com.au/ example.gov.us等等

www.example.co
www.first.example.co
first.example.co
second.first.example.co
no.matter.how.many.example.co
first.example.co.uk
second.first.example.co.uk
no.matter.how.many.example.co.uk
first.example.org
second.first.example.org
no.matter.how.many.example.org
first.example.gov.uk
second.first.example.gov.uk
no.matter.how.many.example.gov.uk
Run Code Online (Sandbox Code Playgroud)

我一整天都在玩正则表达式,整天都在谷歌上寻找一些东西,但似乎仍无法找到一些东西.

编辑2:我更喜欢一个可能因t.co之类的非常奇怪的情况而失败的正则表达式,然后列出所有TLD并且列出我没有列出的那些但可能已被预测失败并且匹配得更多它应该.这不是你选择的选择吗?

更新:使用所选答案作为指导我构建了这个正则表达式为我完成工作.

/([0-9a-z-]{2,}\.[0-9a-z-]{2,3}\.[0-9a-z-]{2,3}|[0-9a-z-]{2,}\.[0-9a-z-]{2,3})$/i

它可能不完美,但到目前为止我还没遇到过它失败的情况.

regex

5
推荐指数
2
解决办法
1万
查看次数

python执行shell命令并继续而不等待,并在执行前检查是否正在运行

我需要从另一个执行另外两个python脚本.命令看起来像这样:

#python send.py

#python wait.py

这将在一个循环中发生,该循环将休眠1分钟然后重新运行.

在执行命令以启动其他脚本之前,我需要确保它们仍然没有运行.

python shell command-line

4
推荐指数
1
解决办法
2万
查看次数