【python + NATAPP】實現內網穿透的簡易數據傳輸


1. 服務端

接收兩張圖像的地址,返回這兩張圖像的相似度

import os, shutil, requests
import cv2
import numpy as np
import imgs_similari_api
from flask import Flask,render_template,request

def cleanfiles(temproot):
    if os.path.exists(temproot):
        shutil.rmtree(temproot)
    os.makedirs(temproot)

app = Flask(__name__)

@app.route("/")
def index():
    return render_template("index.html")

@app.route("/imgsimilar",methods = ['GET', 'POST'])
def login():
    if request.method == "POST":
        imgurl1 = request.form.get('imgurl1')
        imgurl2 = request.form.get('imgurl2')
        print(imgurl1)
        print(imgurl2)
        print('downing ... ...')
        r = requests.get(imgurl1)
        r.raise_for_status()
        # clean files
        cleanfiles('./tempimgs')
        with open('./tempimgs/abc1.jpg','wb') as f:
            f.write(r.content)
            f.close()
        r = requests.get(imgurl2)
        r.raise_for_status()
        with open('./tempimgs/abc2.jpg','wb') as f:
            f.write(r.content)
            f.close()
        image1 = cv2.imread('./tempimgs/abc1.jpg')
        image2 = cv2.imread('./tempimgs/abc2.jpg')
        print('computing ... ...')
        value_img_similar = imgs_similari_api.classify_hist_with_split(image1, image2)
        return {'sorce':str(value_img_similar)}
    else:
        return "<h1>login Failure !</h1>"

if __name__ == '__main__':
    host = '127.0.0.1'
    port = '8888'
    app.run(debug=True, host=host, port=port)

 2. 內網穿透

使用NATAPP的免費服務,先去注冊,在依次進入“我的渠道”>>“購買渠道”>>“免費渠道”,設置一下端口就可以購買了。

接下來下載客戶端和配置config.ini,只需要修改authtoken,換成你自己的authtoken。

運行客戶端

獲得映射網址,如:http://aaa.natappfree.cc -> 127.0.0.1:8888(8888為購買時設置的端口)(注意:每次開啟內網穿透服務,地址會變化!!!)

3. 客戶端

#coding=utf-8
import requests

s = requests

data={'imgurl1':'https://ps.ssl.qhmsg.com/bdr/720__/t017843e759f2628d1f.jpg', 'imgurl2':'https://ps.ssl.qhmsg.com/bdr/720__/t017843e759f2628d1f.jpg'}
r = s.post('http://aaa.natappfree.cc/imgsimilar', data)

print(r.text)

 4. 運行

實際的步驟是先搞定內網穿透,再寫好服務端和客戶端程序(本文的服務端程序缺少計算圖像相似度算法不能運行,僅作示意)。

總結就是:開啟內網穿透服務>>開啟服務端服務>>客戶端調用

現在全球各地都可以通過這個方式調用你寫好的功能了!!!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM