Telegram Bot 開發機器人 (2) Python

02

這是我第二篇文章有關於 Telegram 機器人,此機器人的功能極其簡單!監控伺服器的使用率,最近因為在伺服器又搞了一個很麻煩的東西,要時時刻刻注意有沒有異常。所以才寫了這個小程式(如圖)。

本文直接省略@BotFather產生機器人的說明,我想那應該不是問題。第一篇文章請參考:淺談Telegram開發機器人

本程式一旦運行,就不會停止,每隔固定幾秒鐘會自動更新訊息,會一直不斷的編輯,而不是一直送出(Telegram 有支持編輯訊息的功能)。直接上程式碼。這次使用Python,因為牽扯到系統,用 PHP 就不太適合了。

若在 Linux 的環境下,使用 tmux 輸入指令會比較好。因為它可以在背景運作,可以直接關掉 terminal。

01

基本程式語法整理 Python, PHP, JS, Java, C#, C, C++

最近學C、C++,想一塊學,因為大學程式的緣故,我想,我還是先修好了,練習演算法,順便複習以前的程式。我已經語法大混亂了,沒有編譯器糾正我,基本很難寫正確程式,除非最近都在攻某個專案,否則我平時都是一天寫好幾種不同語言的程式,函數偶爾會亂調用。我知道有些工程師很討厭什麼語言都碰一點的人,但,我不管啦,我就是什麼都學,反正最後我也只會主攻少數幾項,也不至於什麼語言都很淺。

PythonPHPJS 
if state:
    #do sth
elif state:
   
#do sth
else:
    #do sth
if(state){
   
//do sth
}elseif(state){
    //do sth
}else{
   
//do sth
}
if(state){
    //do sth
}else
if(state){
    //do sth
}else{
   
//do sth
}
 
for x in range(0,10):
    #do sth
for($i=0;$i<10;$i++){
    //do sth
}
for(var i=0;i<10;i++){
    //do sth
}
 
for k in arr:
    #do sth
foreach ($arr as
$value) {
   //do sth
}
for(var key in arr){
   
//value=arr[key];
}
 
Not Existswitch($mod){
    case 1:
      
//do sth
    break;
    case 2:
      
//do sth
    break;
    default:
      
//do sth
}
switch(mod){
    case 1:
      
//do sth
    break;
    case 2:
      
//do sth
    break;
    default:
      
//do sth
}
 
def foo(v1,v2):
    return sth
function
foo($v1,$v2){
    return sth;
}

//call by
reference

function foo(&$v1,&$v2){
    return
sth;
}

function foo(v1,v2){
    return sth;
}
 
JavaC#CC++
if(state){
    //do sth
}else if(state){
   
//do sth
}else{
    //do sth
}
if(state){
    //do sth
}else if(state){
   
//do sth
}else{
    //do sth
}
if(state){
    //do sth
}else if(state){
   
//do sth
}else{
    //do sth
}
if(state){
    //do sth
}else if(state){
   
//do sth
}else{
    //do sth
}
for(int i=0;i<10;i++){
    //do sth
}
for(int i=0;i<10;i++){
    //do sth
}
for(i=0;i<10;i++){
    //do sth
}
for(i=0;i<10;i++){
    //do sth
}
for(int k : arr){
    //do sth
}
foreach (int k in arr){
    //do sth
}
Not
Exist
for(int k : arr){
    //do sth
}
switch(mod){
    case 1:
      
//do sth
    break;
    case 2:
      
//do sth
    break;
    default:
      
//do sth
}
switch(mod){
    case 1:
      
//do sth
    break;
    case 2:
      
//do sth
    break;
    default:
      
//do sth
}
switch(mod){
    case 1:
      
//do sth
    break;
    case 2:
      
//do sth
    break;
    default:
      
//do sth
}
switch(mod){
    case 1:
      
//do sth
    break;
    case 2:
      
//do sth
    break;
    default:
      
//do sth
}
public int foo(int v1, int v2){
    return sth;
}
public int foo(int v1, int v2){
   
return sth;
}

//call by reference

public int foo(ref
int v1, ref int v2){
    return sth;
}

foo(ref a,ref b);

public int foo(out int v1, out int v2){
   
return sth;
}

foo(out a,out b);

int foo(int v1, int
v2){
    return sth;
}

//call by reference

int foo(int *v1, int *v2){
    //調用引數都要加*
   
return sth;
}

foo(&a,&b);

int foo(int v1, int v2){
   
return sth;
}

//call by reference

int foo(int &v1, int
&v2){
    return sth;
}

foo(a,b);

//call by pointer

int foo(int *v1, int *v2){
   
//調用所有引數都要加*
    return sth;
}

foo(&a,&b);

Python 進階下載器

我會寫這個,一來是為了讓朋友羨慕也想學程式,二來是我自己要用。我不會閒閒開發一個我用不到的東西。總是開發者要支持一下自己的產品嘛。

這是用Python3寫成的程式,主要針對手機而使用。需要安裝BeautifulSoup4。

(在Windows下的命令提示字元顯示很醜,沒有顏色,實際上在手機Linux終端機裡面跑的時候,會有顏色。)

主要支援以下功能:
一、抓取目標URL的目標連結。
例如我要抓取IG某個頁面的所有圖片。
二、載入網頁列表,抓取目標連結。
例如:載入某網站相簿的第一頁,抓取圖片,然後載入第二頁,抓取圖片,載入第三頁……以此類推。
三、規律網址抓取,這個算是最低階的方法吧。
例如:下載http://example.com/1.jpg,下載http://example.com/2.jpg,下載http://example.com/3.jpg,下載/4.jpg下載/5.jpg……
四、顯示目標清單
五、下載清單上的連結

至於抓圖功能,我可以稱進階抓圖器是沒有講假的,雖然還比不上我用VB.NET寫出來的 強大。那種仿一般正常用戶框架又有COOKIE、HEADER、還解析JS,Python很難辦得到。
所以,頂多次級一點。

支援:
一、抓取頁面上所有「看起來是網址」的連結。(即便它沒有被鑲入在任何標籤內)(採用正規表達式偵測)
二、抓取A標籤的屬性HREF。(超連結)
三、抓取IMG標籤的屬性SRC。(圖片)
四、抓取SOURCE標籤的屬性SRC。(HTML5的audio、movie)
五、抓取EMBED標籤的SRC屬性。(FLASH)
六、抓取OBJECT標籤的DATA屬性。(網頁插件)
七、LINK標籤的HREF屬性。(CSS)
八、SCRIPT標籤的SRC屬性。(JS)
九、FRAME標籤的SRC屬性。(框架)
十、IFRAME標籤的SRC屬性。(內置框架)
十一、以上全部。
十二、自訂抓取標籤名稱與屬性名稱。(這個我VB板的進階抓圖器沒有這項功能)

支援 過濾關鍵字,包刮AND、OR邏輯閘,一定要全部包刮關鍵字,或是命中其一關鍵字。
規律網址下載則支援,起始數字、終止數字、每次遞增多少、補位多少。

※這個有相對位置的處理。

****************************************
* 名稱:進階下載器
* 團隊:White Birch Forum Team
* 作者:Weil Jimmer
* 網站:http://0000.twgogo.org/
* 時間:2015.09.26
****************************************

Source Code

 

2 3 4 5678

WiFi_Kicker.py DeAuth 攻擊

今天實在太過閒,其實也不閒,只是不想花時間讀書,一想到就厭煩。於是就用Python寫了個小程式當作練習。

WiFi Kicker,看名稱就知道大概是讓別人斷線的程式。

主要功能:選擇性DOS目標,自訂目標SSID(有些地方有很多個相同名稱,但實際上都是不同的基地台,例如學校、公司…等)、自訂訊號強度(舉例:訊號強度要大於-70dbm才DeAuth DOS攻擊)、自訂間隔時間。

首先…因為我初學,所以程式設計得不是很好。必須要有兩張網卡,wlan0,wlan1,

而wlan1必須要支援mon模式。

必要組件:aircrack、mdk3、python wifi lib。

這主要是針對我自己的平板所寫的,桌面環境為LXDE。指令裡面有寫到 lxterminal 這個應用程式,所以可能要自己修改一下。

開發緣由:我自己的AR9271這網卡在某些場所搜尋的裝置實在太多了!如果開了 mdk3 根本Dos不到什麼東西。反而自己的網卡Down了。所以我自己寫了一個根據訊號強度和目標裝置SSID,特定目標DOS會比較有效一點。

wifi_kicker.py – Source Code

wifi_kicker