欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python檢測IP地址變化并觸發(fā)事件

 更新時間:2018年12月26日 16:41:58   作者:lynnucas  
這篇文章主要為大家詳細介紹了python檢測IP地址變化并觸發(fā)事件,具有一定的參考價值,感興趣的小伙伴們可以參考一下

IoT PoC項目中需要展示視頻采集源進行wifi切換后(表明視頻采集源端發(fā)生了移動),接收端觀看到的視頻的流暢度,以及當接收端進行移動時,檢測視頻的流暢度,故需要一個模塊周期性地探測本地IP是否變化,以指示設(shè)備的移動性。

操作:當設(shè)備做為視頻接受者發(fā)生移動時,在IP變化后立刻向視頻發(fā)送者發(fā)送攜帶有新IP的內(nèi)容請求消息

代碼如下:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import time
import subprocess
from time import sleep 
import logging.config
from socket import *
import binascii
import json
import re

def search(pattern,text,flag): 
 #print(text)
 m=re.search(pattern,text)
 if m is not None:
  return m.group(flag)

def get_ip(cmd):
 ip_cur = '0.0.0.0'
 while ip_cur == '0.0.0.0':
  obj = subprocess.Popen(cmd,stdout=subprocess.PIPE,stderr=subprocess.PIPE,shell=True)
  obj.wait()
  lines = obj.stdout.readlines()      
  for eachline in lines:
   eachline= eachline.decode('gbk')
   #print(eachline)
   strs='IPv4 地址'
   if strs in eachline:    
    content=search('IPv4 地址 . . . . . . . . . . . . :(.*?)\r\n',eachline,1)
    #print(content)
    ip_cur = str(content)
    print(ip_cur)
    break  
 return ip_cur

def send_data_request(S_EUID,D_EUID,C_EUID,NA,port):
 address = (NA, port)
 s = socket(AF_INET,SOCK_DGRAM) 
 flag=1
 while flag:  
  s_EUID=binascii.a2b_hex(S_EUID)  
  d_EUID=binascii.a2b_hex(D_EUID)
  sev_type=binascii.a2b_hex(hex(22).replace('0x',''))
  Head_len=binascii.a2b_hex(hex(36).replace('0x',''))
  ICN_check=binascii.a2b_hex(hex(4444).replace('0x',''))
  packet_type=binascii.a2b_hex('0'+hex(1).replace('0x',''))  
  c_EUID=binascii.a2b_hex(C_EUID)   
  data=s_EUID+d_EUID+ sev_type+Head_len\
  +ICN_check+packet_type+c_EUID
  print(len(data))
  if not data: 
   break 
  s.sendto(data,address)
  flag=0 
 s.close()


def ip_cmp(cmd,S_EUID,D_EUID,C_EUID,NA,port,IP_cur,get_cnt): 
 ip_next=get_ip(cmd)
 get_cnt=get_cnt+1
 if time_flag:
  if ip_cur!='0.0.0.0' and ip_next !='0.0.0.0':
   if ip_cur == ip_next:
    change_flag=0
    print('change_flag='+str(change_flag))
   else:
    change_flag=1
    print('change_flag='+str(change_flag))    
    send_data_request(S_EUID,D_EUID,C_EUID,NA,port)
 return ip_next



if __name__ == '__main__':

 cmd='ipconfig'

 get_cnt=0 #ip 獲取次數(shù)計數(shù)器
 T_interval=0.1 #ip 獲取周期
 ip_cur='0.0.0.0' 
 ip_next='0.0.0.0'
 ip_cur=get_ip(cmd)
 #ip_cur='192.168.110.1'
 get_cnt=get_cnt+1

 time_flag=1

 S_EUID='aaaa'
 D_EUID='bbbb'
 C_EUID='cccc'
 NA='192.168.1.100' 
 port=35000

 while time_flag:
  ip_next=ip_cmp(cmd,S_EUID,D_EUID,C_EUID,NA,port,ip_cur,get_cnt)
  print('IP_next='+ip_next)
  sleep(T_interval)
  ip_cur=ip_next
  print('IP_cur='+ip_next)

本代碼中,利用ipconfig指令獲取IP地址,該方法可能存在一定的問題,故還可采用其他的方法獲取IP,如用socket方法可以獲取本地的外網(wǎng)IP,這里不贅述,可再百度相關(guān)的方法。

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python模板的使用詳細講解

    Python模板的使用詳細講解

    Django 模板是使用 Django 模板語言標記的一個文本文檔或Python字符串。模板引擎可以識別和解釋一些構(gòu)造。主要是變量和標簽。模板是通過上下文來渲染的。渲染用變量的值替換變量,變量的值在上下文中查找,并執(zhí)行標簽。其他的一切都按原樣輸出
    2022-10-10
  • Python使用grequests(gevent+requests)并發(fā)發(fā)送請求過程解析

    Python使用grequests(gevent+requests)并發(fā)發(fā)送請求過程解析

    這篇文章主要介紹了Python使用grequests并發(fā)發(fā)送請求過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-09-09
  • python?selenium參數(shù)詳解和實現(xiàn)案例

    python?selenium參數(shù)詳解和實現(xiàn)案例

    這篇文章主要介紹了python?selenium參數(shù)詳解和實現(xiàn)案例,無頭模式添加,可以讓selenium模擬登錄,進入到后臺運行,本文以登錄打開公司內(nèi)網(wǎng)下載數(shù)據(jù)為例,給大家詳細講解,需要的朋友可以參考下
    2022-10-10
  • python中如何實現(xiàn)徑向基核函數(shù)

    python中如何實現(xiàn)徑向基核函數(shù)

    這篇文章主要介紹了python中如何實現(xiàn)徑向基核函數(shù)問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • pycharm中執(zhí)行.sh文件的方法步驟

    pycharm中執(zhí)行.sh文件的方法步驟

    本文主要介紹了pycharm中執(zhí)行.sh文件的方法步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-02-02
  • Python、 Pycharm、Django安裝詳細教程(圖文)

    Python、 Pycharm、Django安裝詳細教程(圖文)

    這篇文章主要介紹了Python、 Pycharm、Django安裝詳細教程,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-04-04
  • python程序輸出無內(nèi)容的解決方式

    python程序輸出無內(nèi)容的解決方式

    這篇文章主要介紹了python程序輸出無內(nèi)容的解決方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04
  • Python實現(xiàn)字典(dict)的迭代操作示例

    Python實現(xiàn)字典(dict)的迭代操作示例

    這篇文章主要介紹了Python實現(xiàn)字典(dict)的迭代操作,結(jié)合實例形式分析了Python針對字典鍵、值以及鍵值對等迭代操作實現(xiàn)技巧,需要的朋友可以參考下
    2018-06-06
  • python框架Django實戰(zhàn)商城項目之工程搭建過程圖文詳解

    python框架Django實戰(zhàn)商城項目之工程搭建過程圖文詳解

    這篇文章主要介紹了python框架Django實戰(zhàn)商城項目之工程搭建過程,這個項目很像京東商城,項目開發(fā)采用前后端不分離的模式,本文通過圖文并茂的形式給大家介紹的非常詳細,需要的朋友可以參考下
    2020-03-03
  • python3實現(xiàn)語音轉(zhuǎn)文字(語音識別)和文字轉(zhuǎn)語音(語音合成)

    python3實現(xiàn)語音轉(zhuǎn)文字(語音識別)和文字轉(zhuǎn)語音(語音合成)

    這篇文章主要介紹了python3實現(xiàn)語音轉(zhuǎn)文字(語音識別)和文字轉(zhuǎn)語音(語音合成),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-10-10

最新評論