小编Kar*_*tin的帖子

一组坐标的边界点

我有一组经纬度点,我想从这些点中提取形成边界的点,我使用了凸包,但对于我的目的来说还不够,因为凸包只是返回形成的最远点所有点都适合的多边形,我需要形成 peremiter 的所有点,就像我附加的图像一样。我能做什么?是否有某种包可供使用而不是实现任何空间算法?谢谢 在此处输入图片说明

python geospatial scipy

6
推荐指数
1
解决办法
6084
查看次数

Scapy python 脚本在嗅探时消耗太多 CPU

我已经使用 python + scapy 编写了一个无线探针嗅探器。我想在 openwrt 路由器中使用这个脚本。

每次它从附近的设备捕获探测请求时,都会将信息发送到 Web 服务。(mac、电源和探头)。

我的问题是CPU的高消耗。该脚本在我的笔记本电脑上运行得很好(它需要 50-70% 的 cpu),但是当我在 openwrt 路由器(400mhz cpu,16 ram)中运行它时,它需要 99%。这是 scapy 中的一个众所周知的错误,即高负载丢失数据包(我同时测试了笔记本电脑和路由器中的脚本,路由器没有捕获空中所有可用的数据包)

我已经对代码做了一些优化,但我认为还有更多的改进空间。

这是脚本。

#!/usr/bin/python
from scapy.all import *
import time
import thread
import requests
from datetime import datetime

PROBE_REQUEST_TYPE=0
PROBE_REQUEST_SUBTYPE=4
buf={'arrival':0,'source':0,'dest':0,'pwr':0,'probe':0}
uuid='1A2B3'

def PacketHandler(pkt):
    global buf
    if pkt.haslayer(Dot11):
        if pkt.type==PROBE_REQUEST_TYPE and pkt.subtype == PROBE_REQUEST_SUBTYPE:
            arrival= int(time.mktime(time.localtime()))
            try:
                extra = pkt.notdecoded
            except:
                extra=None

            if extra!=None:
                signal_strength = -(256-ord(extra[-4:-3]))
            else:
                signal_strength = -100

            source = pkt.addr2
            dest= pkt.addr3
            pwr=signal_strength
            probe=pkt.getlayer(Dot11).info

            if buf['source']!=source …
Run Code Online (Sandbox Code Playgroud)

python wireless scapy

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

Lambda 未加载加密共享库

我正在使用 AWS Lambda 中的加密库。我已在 Amazon Linux VM 中使用 pip 编译了该包。我已将包作为图层上传。不管怎样,每次我调用库时,我都会遇到一个根本不具有描述性的错误:

Unable to import module 'lambda_function': libffi-ae16d830.so.6.0.4: cannot open shared object file: No such file or directory
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,错误不是因为找不到库,而是因为我找不到另一个共享模块。

以下是我尝试在 Lambda 上执行的代码示例:

from cryptography.hazmat.backends import default_backend
from cryptography.hazmat.primitives import hashes
from cryptography.hazmat.primitives.kdf.pbkdf2 import PBKDF2HMAC
from cryptography.fernet import Fernet

password_provided = "test123" 
password = password_provided.encode() 
salt = b'test_' 
kdf = PBKDF2HMAC(
    algorithm=hashes.SHA256(),
    length=32,
    salt=salt,
    iterations=100000,
    backend=default_backend()
)
key = base64.urlsafe_b64encode(kdf.derive(password)) 


message = "message from db".encode()

f = Fernet(key)
encrypted = f.encrypt(message)

print(encrypted)

f …
Run Code Online (Sandbox Code Playgroud)

python aws-lambda

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

标签 统计

python ×3

aws-lambda ×1

geospatial ×1

scapy ×1

scipy ×1

wireless ×1