顯示具有 cgi 標籤的文章。 顯示所有文章
顯示具有 cgi 標籤的文章。 顯示所有文章

2020/12/01

接續上一篇

再來處理ipaudit

在configure的時候要注意沒有裝的package要補上

安裝過程沒什麼問題

安裝完要依自己的環境調整

/home/ipaudit/ipaudit-web.conf


安裝完後apache2要調整 enable user 目錄

a2enmod userdir

讓user目錄可以執行cgi

vi /etc/apache2/conf-enabled/cgi-enabled.conf

加上

<Directory "/home/*/public_html/cgi-bin/">

    Options ExecCGI

    SetHandler cgi-script

</Directory>


restart apache2


但安裝後問題來了

首先是圖出不來

找了一下討論串

解決方法是到

/home/ipaudit/reports/30min/graphic 這個目錄

把所有執行檔裡的這行

set term png small color

改成
set term png small


再來是無法產出30分鐘的資料

修改

/home/ipaudit/reports/30min/0traffic/MakeReport30

原  

$Conf{uc $Name} = $Value;

改為

if (defined $Name || $Name ne "") {

      $Conf{uc $Name} = $Value;

      }


$mask = 0; ($mask = ~0  >> $2) unless($2 > 31);

改為    

$mask = 2**(32-$2) - 1;


以上修改完成就可以了


https://sourceforge.net/p/ipaudit/discussion/59302/thread/1d876c01/

https://sourceforge.net/p/ipaudit/discussion/59302/thread/4a85f604/

http://ipaudit.sourceforge.net/

https://zi.media/@tomchuntw/post/gbDnqB

2020/06/28

升級到 ubuntu 20.04 後

smokeping 的頁面變得很怪
有很多東西無法顯示
查看log後發現


[Sat Jun 27 22:39:35.948770 2020] [cgid:error] [pid 183:tid 140018064512768] [client 10.0.0.45:50120] AH01264: script not found or unable to stat: /usr/lib/cgi-bin/css, referer: http://1.2.3.4/cgi-bin/smokeping.cgi
[Sat Jun 27 22:39:35.958724 2020] [cgid:error] [pid 183:tid 140018039334656] [client 10.0.0.45:50120] AH01264: script not found or unable to stat: /usr/lib/cgi-bin/js, referer: http://1.2.3.4/cgi-bin/smokeping.cgi

找了半天
才在debian的forum上看到是一個bug
是有說會修 但也不知道要等多久

目前的解決方式是更改打開頁面的url
原本是

http://1.2.3.4/cgi-bin/smokeping.cgi

改成
http://1.2.3.4/smokeping/smokeping.cgi
就可以了
而且頁面的配置跟之前不同




2016/03/05

最近把從mysql撈資料的程式用python改寫 之前是用php

改完後發生的第一個問題就是中文全變成了???

192.168.105.61 || 2016-03-04 00:05:05 || 2016-03-07 00:05:05 || Flow Checking ????????????(1368>????:700) to Deny this IP cannot access network

原因是從mysql撈出來時中文就亂了 所以不管之後怎麼轉碼 都沒有用了
所以必須在撈時就要指定編碼 加上下方紅色字部分

db = MySQLdb.connect(host="localhost", user="abc", passwd="pwd", db="test", charset='utf8')

但加完後網頁反而出不來了
再查了一下資料 說是要再指定sys的編碼 於是程式內必需再加入以下三行

import sys
reload(sys)
sys.setdefaultencoding('utf-8')

加完後之後的結果變成

192.168.105.61 || 2016-03-04 00:05:05 || 2016-03-07 00:05:05 || Flow Checking �訫�銝餅�����賊�蝬脰楝�輻�(1368>�𣂼��賊�:700) to Deny this IP cannot access network

看來中文有出來了 接下來是顯示的問題了 因為這個os比較久了 所以apache預設的編碼是設為big5 如果要去改會影響到其他東東 所以只能在程式加上指定編碼來處理了 比較新版本os的apache應該都預設為utf8了 應該不會碰到這個問題

print '<html>'
print '<head>'
print '<meta charset="UTF-8">'
print '</head>'
print '<body>'

print '</body>'
print '</html>'

網頁正常 搞定

192.168.105.61 || 2016-03-04 00:05:05 || 2016-03-07 00:05:05 || Flow Checking 違反主機連線數量網路政策(1368>限制數量:700) to Deny this IP cannot access network

完整程式碼如下

#!/usr/bin/python
# -*- coding: utf-8 -*-
print "Content-type: text/html"
print
# 引入 MySQL 模組
import MySQLdb
#引入 sys 並指定sys為utf-8編碼
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
# 連接 MySQL
db = MySQLdb.connect(host="localhost", user="abc", passwd="pwd", db="test", charset='utf8')
cursor = db.cursor()
# 執行 SQL
cursor.execute("select ip from table;")
result = cursor.fetchall()
# 輸出結果
a=0
for record in result:
        if (a%2)==1:
                print "<FONT  COLOR=FF0000>"
        else:
                print "<FONT  COLOR=000000>"

        print record[0]
        print "<br>"
        print "<br>"
        a=a+1
db.close()

2016/03/04

因為python cgi的中文一直有問題出不來
找了好多資料
方法都不同
有的要轉碼
有的要用module
找到以下的方法
覺得是比較簡單的

#!/usr/bin/python
#encoding=utf-8  或  # -*- coding: utf8 -*-

print "Content-type: text/html"
print

print "Hi, Python."
print "中文"

2016/02/29

關於如何在網頁上執行python目前找到二個方法
一個是在apache中載入module
有二個module可以用

http://modpython.org/
https://code.google.com/archive/p/modwsgi/

根據一般的說法是wsgi的效能會比modpython好二倍以上
使用方式是在apache啟動時載入模組

另一個方式是採用cgi
直接把寫好的python放在 /var/www/cgi-bin/下

在程式碼的最前面加上
print "Content-type: text/html"
print

這樣就能直接用了

bash perl 也是相同的方法

目前先採用cgi的方式

http://blog.xuite.net/autosun/study/42871538-%5BUbuntu%5D+%E5%AE%89%E8%A3%9D+Apache2+%2B+Python+%2B+MySQL