顯示文章

這裡允許您檢視這個會員的所有文章。請注意, 您只能看見您有權限閱讀的文章。


文章 - abelyang

頁: 1 ... 31 32 [33] 34 35 ... 37
961
上面兩位都可以做了說明了沒有我發揮的餘地了 ...
 :D
不過提醒幾個狀況:
1. gd lib 的版本為何? 我記得只改 ttffont 的字型的話 lib 是 1.8.4 以上的
    如果你低於這個版本,可能要注意可參考 (libgd 在complier 得要 enable ttf
    要有 ttf, 系統就要有 freetype lib  )
    若有問題
    http://tw.php.net/function.imagettftext
    http://www.freetype.org
    或用 google 找 libgd big5 的組合

2. 上述兩位所講的 unicode 指的是 ucs-2 的編碼,你可以用 iconv 的 function
    去轉或是我在網路上也有看過這樣的 function(b5touni),不過我個人會建議
   你用 iconv (php function) .因為 iconv 幾乎什麼碼都可以轉,
   為什麼要轉,這主要是因為字型檔是用 ucs-2 編碼存放的
  直接給big5 的 encoding 他會找不到或錯掉
3. 你的系統是否有 TureType 的字型,沒有的話可以去找 taipeifont 的 rpm 或是
   直接拿 windows 的來用

962
我覺得很難哦...
因為

收信:
mailbox 取出一封一封信的方法
Header 的處理
Encoding/decoing  的問題
charset 的判斷
附加檔案
附加檔案編碼的還原
....


寄件:
也是很多很多要處理

不是不行, 而是不容易哦 ~~
From xxx@xxx.com.tw  Mon Mar  3 15:26:07 2003
Return-Path: <xxx@xxx.com.tw>
Received: from msgmgr.xxx.com.tw (msgmgr.xxx.com.tw [202.12.30.226])
        by ggg.net.tw (8.12.5/8.12.5) with ESMTP id h237Q5fi022410;
        Mon, 3 Mar 2003 15:26:06 +0800
Received: (from xxx@localhost)
        by msgmgr.xxx.com.tw (8.9.3+3.1W/3.7W/JPNIC-msgmgr.def,v-99091900/smtpfeed 0.92) id QAA12728;
        Mon, 3 Mar 2003 16:25:31 +0900 (JST)
        (envelope-from owner-jet-member)
Received: from spool.xxx.com.tw (spool.xxx.com.tw [192.168.10.252])
        by msgmgr.xxx.com.tw (8.9.3+3.1W/3.7W/JPNIC-msgmgr.def,v-99091900) with ESMTP id QAA12723
        for <xxx@ml.xxx.com.tw>; Mon, 3 Mar 2003 16:25:30 +0900 (JST)
        (envelope-from owner-jet-member@msgmgr.xxx.com.tw)
Received: from mx2.jprs.co.jp (mx2-gw.jprs.co.jp [172.16.9.52])
        by spool.xxx.com.tw (8.9.3+3.1W/3.7W/JPNIC-spool.def,v-1.14-2003011314) with ESMTP id QAA25207
        for <jet-member@xxx.com.tw>; Mon, 3 Mar 2003 16:25:29 +0900 (JST)
        (envelope-from jseng@pobox.org.sg)
Received: from sentosa.post1.com (sentosa.post1.com [202.27.17.100])
        by mx2.jprs.co.jp (8.11.6+Sun/8.11.6) with SMTP id h237PS329025
        for <jet-member@xxx.com.tw>; Mon, 3 Mar 2003 16:25:28 +0900 (JST)
Received: (qmail 35872 invoked from network); 3 Mar 2003 07:37:40 -0000
Received: from ida80.ida.gov.sg (HELO JSENGTOSHIBA) (210.24.194.80)
  by sentosa.post1.com with SMTP; 3 Mar 2003 07:37:40 -0000
Message-ID: <000701c2e156$15a33610$61504b0a@JSENGTOSHIBA>
From: "yyy" <yyy@pobox.org.sg>
To: <xxx@xxx.com.tw>
References: <JPEHLEFKGPDLFPIFGOOKIEEIDGAA.ggg@ggg.net.tw>
Subject: [JET-member 1874] Re: alisan
Date: Mon, 3 Mar 2003 15:25:35 +0800
MIME-Version: 1.0
Content-Type: text/plain;
        charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 6.00.2800.1106
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1106
Sender: xxx@xxx.com.tw
Precedence: bulk
Reply-To: xxx@xxx.com.tw
Status: RO
X-Status:
X-Keywords:
X-UID: 27087


光 header 我個人覺得就很頭大 ~~
當然有些欄位是可以不用理會的,因為那只是郵件交換時產生的
我覺得你要寫這樣的系統得有相當的心裏準備
因為要花蠻久的時間

963
PHP程式設計討論區 / 把 url 隱藏
« 於: 2003-07-04 11:47 »
引用
其實徵結可能在於 paulso 兄對於 client 和 server 之間傳遞的東西不清楚,
除了去瞭解 http protocol 之間傳遞的資料外 (不過可能會花些時間


我也是這麼建議 paulso 哦~因為今天我和你講的可能都只是針對你現在的問
題. 但還有許多資訊可能沒有說明, 找一個較完整的文件, 完整的看一下應會
對 GET/POST 有更深入的了寫, 再來寫程式就較能體會了

964
PHP程式設計討論區 / 把 url 隱藏
« 於: 2003-07-04 00:56 »
引用
是否即是說,get_url_content 一次,其後 post 給自己的話就只需 PostToHost ?

這句話有點模糊...
你只要記住 POST or GET 都是 Request 的一種,只要對種做一次就好了
看你的目標網頁支援那一種即可($_GET or $_POST or both)

另外提醒你~~路徑的問題
如果你所有網頁都要這麼做的話,建議你路徑都寫絕對路徑
也就是從 Document_root 開始寫起,才不會錯亂掉
不然就是所有的網頁都在同一目錄中,不分目錄

965
PHP程式設計討論區 / 把 url 隱藏
« 於: 2003-07-04 00:43 »
Yeah, Darkhero 也是個中能人呀...
我輩不能忽略程式的可讀性及加註解的習慣

966
PHP程式設計討論區 / 把 url 隱藏
« 於: 2003-07-04 00:40 »
POST/GET 指的是 HTTP method, 都是 Request 的一種,把資料給 Server,
Server 會將你處理好回應結果
不是 POST 是丟. GET 是檢 ...

967
引用
是否aaaa是密碼, 現在希望加密至Zx字頭的編碼, crypt("aaaa","Zx"), 編碼後得出Zxjkfjdifl, 意思是這樣嗎?

是的,意思是這樣沒有錯
但是 Zx....那一段我是隨便打的不是 aaaa 真正的 crypt 值
我僅是舉例而以

引用
但是在outlook express裏輸入aaaa還是說密碼錯誤

這個問題我不了解你的操作過程無法解釋...
也不知道 Outlook 如何處理 ...(對 MS 較不懂)

968
PHP程式設計討論區 / 把 url 隱藏
« 於: 2003-07-04 00:25 »
兩種只要選一種就好了哦 ~~
還有 function 內的 IP 等資料改一下
這個地方
引用
if ($query_string==null && $url==null)    $query_string = "?class=3";
if ($hostname==null)            $hostname = "rs.twnic.net.tw";
if ($url==null)                $url = "DNS92/apply.php";



if 內 改成
if (!isset($hostnmae)) ...
$hostname 不是 null , 而是尚未設立
不然你就把 if 先拿掉好了...

969
PHP程式設計討論區 / 把 url 隱藏
« 於: 2003-07-03 23:21 »
這邊我替 duan兄解釋一下好了
#a.html ...這個 form內建議放進一個 檢查和 (checksum),
#以讓想騙你的人更難達到如

<Form method=post name=form1 action=b.php>
<input type=text name=txt1 value="">
<input type=text name=txt2 value="">
<input type=submit name=smt1 value=submit>
<?php // checksum sample ,給每一個 Client 特別的的字串,建議一定要有 session id 的變數, 避免受欺
  echo "<input type=hidden name=hdn1 value=".md5("..$HTTP_HOST@$HTTP_REFERER...看你還要加什麼...+$sid abelyang is good").">\n";
</form>

a.html submit to b.php

#b.php  sample1   原來你用
$txt1=$HTTP_POST_VAR['txt1'];
$txt2=$HTTP_POST_VAR['txt2'];
$smt1=$HTTP_POST_VAR['smt1'];

來收變數,
所以 duan 兄的 function 的處理就是
$html_page=PostToHost($host,$path,"txt1=$txt1&txt2=$txt2&smt1=$smt1\n");

#b.php sample2 如果用 $_POST 來收
// 意指要將 $_POST 的索引取出為 $key  (txt1,txt2,smt1), 而值為 該 input 之 value
$post_data="";
while (list($key,$val)=each($_POST) {  
   echo "$key=$val<BR>";   //你把他秀出來看看
   // ...加一些控制在這以加強驗證,如 md5 的驗證
           $$key=$val;            //  本來 $key=txt1 , $$key ? 就變成 $txt1=$val
  $post_data.="$key=$val&" //最後會多一個 &,這裏你可以用RE 的 function 把它處理掉,這個你自己要去查...好像可以用 eregi_replace
}
$post_data=re_function_here("&$","\n",$post_data);
$html_page=PostToHost($host,$path,$post_data);


兩種方法sample1 / sample2 你自己比較看看囉~
若我一定用  sample2, 這樣可以保持較大的彈性,每一頁
我都 include sample2 ,一勞永意..

不過我不了解 duan 兄這一段的用意?
引用
while($line=fgets($fp,128)){
if(eregi("^Content-Type",$line)){
fgets($fp,128);
$return.=fgets($fp,128)."<br>";
}

有 Content-Type 那一行, 要 pass 下一行,手邊沒有文件,尚不知何用 ?
應是要開始接 html 吧 ?
不過可以確定的是 html 文件 是 "\r\n\r\n" 後開始的(正常的 encoding, 如果像是 Chunk 就不是了,這巳是 HTTP/1.1 的東西了)

970
PHP程式設計討論區 / 把 url 隱藏
« 於: 2003-07-03 21:03 »
paulso , 上面的表達看不太懂哦 ~~
我猜你在問 post 的值怎取得 ?
就和 GET 差不多呀
$_GET['var']
$_POST['var']


//取所有的 POST 值
while ( list($key,$val)=each($_POST) {
         $$key=$val;
}
//同理可用 $_GET, $_SERVER,$_SESSION,$_COOKIE


這樣就可以將 POST 的值取出了....
不過這樣和 register_global 有什麼差別呢 ...

通常我都會先訂好 coding rule, 變數的 rule,
$key 在符合某些規則下才可以被接受
其他的就不會執行到 $$key=$val 這種狀況了

971
引用
salt 就是編/解碼時的 Key
除了密碼要對外, salt 也要一樣才可以


嗯~~我的這句話有語病  :oops:
應該說是編碼而以
原來的密碼 crypt 的值(Zxjkfjdifl)  和 現在輸的的密碼 (aaaa),
取 Zx 當 salt , crypt("aaaa","Zx")=="Zxjkfjdifl" ?
如果一樣就通過passwd 檢查了
所以 crypt 具有不可還原的特性...[/quote]

972
Network 討論版 / 假信多注意~~別上當了
« 於: 2003-07-03 19:31 »
Return-Path: <info@ms1.hinet.net>
Received: from ms1.hinet.net (info@ms1a.hinet.net [168.95.5.1])
   by xxx.net.tw (8.12.9/8.12.9) with ESMTP id h63BNPwg023488
   for <xxx@xxxnet.tw>; Thu, 3 Jul 2003 19:23:25 +0800
Received: (from info@localhost)
   by ms1.hinet.net (8.8.8/8.8.8) id TAA12799
   for xxx@xxx.net.tw; Thu, 3 Jul 2003 19:23:24 +0800 (CST)
Date: Thu, 3 Jul 2003 19:23:24 +0800 (CST)
From: info@ms1.hinet.net
Message-Id: <200307031123.TAA12799@ms1.hinet.net>
Status:  

Subject:HiNet客服中心系統自動回函

敬啟者
  您好!
  本信箱因本日收到的郵件數量甚為龐大,無法立即回覆您的來函,深感抱歉!請您務必耐心等候,本公司將盡速回覆您的問題,在此特別提醒您:
如果台端的問題有關E-mail信箱需排除障礙,請您務必隨函附上您的E-mail
password以利我們進行測試!
  若是您的信箱已經發生無法收信的問題,為避免回覆的郵件無法送達您的信箱,煩請您電洽0800080412 # 9尋求客服人員之協助,或請您另附一個E-mail 信箱,俾利本公司回覆您的問題。
不便之處,尚祈見諒!

中華電信數據分公司HiNet客服中心    敬啟  

Subject: Your HiNet E-Mail Auto-Reply

Dear Sir/Madam

Greeting.

Due to an over capacity of e-mail request, we are unable to reply to your e-mail at this time. We apologize for the inconvenience. Please wait. We will answer your e-mail request in the order that it was received as soon as possible.

Please remember to:
1. If you encounter difficulty accessing your e-mail account, please leave your e-mail account name and password along with your message for us to expedite your service.

2. If you experience difficulty sending/receiving your e-mail, please contact 0800-080-412 extension 9 for assistance

973
PHP程式設計討論區 / 把 url 隱藏
« 於: 2003-07-03 18:57 »
我想 paulso 要的應就是 POST method 用 socket  的作法吧
樓上的 duan 巳解釋的很詳細了哦 ~~

以下是 www.php.net 上 curl function 的參考資料
你也可以參考看看 curl 對 https 的處理方法哦,因為
自己用 socket 很難去處理 https 的資料

POST /destination/script HTTP/1.1
Content-length: xxx      <===要 POST 資料的總長度
Content-type: text/xml  <===資料類型,這個地方很有學問
host: yourhost              
accept: */*
accept-encoding: gzip, deflate  <=== encoding 也很有學問哦
accept-language: en-us
connection: close; Keep-Alive
...
your POST data
...


基本上會建議 paulso 寫程式時, 要讓同一個程式 POST/GET 都可以過
會較有彈性, 但是不要將 register_globals 設成 on 了, 這個在高手眼裏
可能都是機會~~尤其是電玩家,真是無所不用其極  ~~ :roll:

974
PHP程式設計討論區 / 把 url 隱藏
« 於: 2003-07-03 14:37 »
什麼意思 ? 幫得上忙儘管說 !!
我給你靠 !!

975
剛拿 study-area.org 的 mail server 來試一下大概是這樣吧 !?
(我沒帳號密碼,不過我想 study-area 這部 server ,
smtp auth 沒限制 auth try 的次數的樣子.....多了一個猜密碼的管道了)

telnet mail_server 25
...前面大家都知道
help auth
214-2.0.0 AUTH mechanism [initial-response]
214-2.0.0       Start authentication.
214 2.0.0 End of HELP info
auth login md5
334 VXNlcm5hbWU6
84762cbb468d230db95867fccfe10832  <<username 這是 "netman" 的 md5
334 UGFzc3dvcmQ6
84762cbb468d230db95867fccfe10832  <<passwd 這是 "netman" 的 md5
500 5.7.0 authentication failed
...後面大家也知道

用 md5sum 這個做 md5 編碼
或用 mmencode 做 mine 的編碼
我不知道該 Server 的 auth 方式(也沒帳號),不過我想方法雖不中亦不遠矣

976
RFC2554
         The authentication protocol exchange consists of a series of
         server challenges and client answers that are specific to the
         authentication mechanism.  A server challenge, otherwise known
         as a ready response, is a 334 reply with the text part
         containing a BASE64 encoded string.  The client answer consists
         of a line containing a BASE64 encoded string.  If the client
         wishes to cancel an authentication exchange, it issues a line
         with a single "*".  If the server receives such an answer, it
         MUST reject the AUTH command by sending a 501 reply.
中略....(C 是 Command, S 是 Status)
         S: 220 smtp.example.com ESMTP server ready
         C: EHLO jgm.example.com
         S: 250-smtp.example.com
         S: 250 AUTH CRAM-MD5 DIGEST-MD5
         C: AUTH FOOBAR
         S: 504 Unrecognized authentication type.
         C: AUTH CRAM-MD5
         S: 334
PENCeUxFREJoU0NnbmhNWitOMjNGNndAZWx3b29kLmlubm9zb2Z0LmNvbT4=
         C: ZnJlZCA5ZTk1YWVlMDljNDBhZjJiODRhMGMyYjNiYmFlNzg2ZQ==
         S: 235 Authentication successful.

我沒有用過 smtp auth, 有人可以建一個帳號讓我試試嗎 ?
(試完了你再把他刪除)
或許我可以給你答案也不一定

977
PHP程式設計討論區 / 把 url 隱藏
« 於: 2003-07-03 12:09 »
這個 HTTP_REFERER 的問題其實很簡單的一句話
他是 Broswer 送給 http server 的, 那也可以用造假的方式
寫在 header 裏, http server 不明所以就相信了
所以會建議不要使用這個變數來驗證來源 或上一頁

978
PHP程式設計討論區 / 把 url 隱藏
« 於: 2003-07-03 11:58 »
引用
若設定 register_globals=off
用 $HTTP_SERVER_VARS['HTTP_REFERER'] 來截取呢 ?

試試 http://www.e-maker.com.tw/~harry/test1.php?HTTP_REFERER=aaaa
與開啟一個新 IE 試試


這個問題,試一下面, 結果還是被騙了 ~~
用 HTTP_REFERER 這種東西對懂的人效果可能不太哦

#test1.php
<?php
function get_url_content($hostname,$url,$query_string)
{
//連到 $hostname 的 80 port, 30 是 timeout = 30 秒
$fp = fsockopen ($hostname, 80, $errno, $errstr, 30);
//這裏是 http 的 command,$url 是 hostname 後的 path
// $query 是 GET method 的string, 像 a=1&b=2
fputs ($fp, "GET /$url"."$query_string HTTP/1.0\r\nReferer: http://www.hah-hah.c
om\n
Host: $hostname\r\n\r\n");
$html_page="";

//讀取網頁
while (!feof($fp)) {
$str=fgets ($fp,1024);
$html_page.=$str;
}
//處理掉 http header 段
$html_page=strstr($html_page,"\r\n\r\n");
return $html_page;

}

echo get_url_content("www.e-maker.com.tw","~harry/test1.php","?HTTP_REFERER=aaaa
");

結果畫面:
HTTP_REFERER=http://www.hah-hah.com<BR>REQUEST_METHOD=GET<BR>

979
PHP程式設計討論區 / 把 url 隱藏
« 於: 2003-07-03 11:39 »
我舉個實例好了
#test.php

<?php
function get_url_content($hostname,$url,$query_string)
{
//連到 $hostname 的 80 port, 30 是 timeout = 30 秒
$fp = fsockopen ($hostname, 80, $errno, $errstr, 30);
//這裏是 http 的 command,$url 是 hostname 後的 path
// $query 是 GET method 的string, 像 a=1&b=2
fputs ($fp, "GET /$url"."$query_string HTTP/1.0\r\nHost: $hostname\r\n\r\n");
$html_page="";

//讀取網頁
while (!feof($fp)) {
$str=fgets ($fp,1024);
$html_page.=$str;
}
//處理掉 http header 段
$html_page=strstr($html_page,"\r\n\r\n");
return $html_page;

}
echo get_url_content("rs.twnic.net.tw","DNS92/apply.php","?class=3");
?>

你 run 看看, 上幾篇寫的沒有測試,有變數設錯了,以這篇的 function 為準哦
如果可以了, 你就可以將這個原理套到你的 index.php 了
三個 frame 的 src 都是 index.php , 但是 get_url_content 的目標不一樣
(用 script 去判斷在那個 frame, 給予不同的變數值, 依值再 get 不同的 url)

980
PHP程式設計討論區 / 把 url 隱藏
« 於: 2003-07-03 11:15 »
curl 你可以但 www.php.net 去找 curl function 的用法,
curl 也可以支援 https, 用 socket 就沒有那麼好處理 https 了

curl 也有 linux 下的 command, 你可以 man 一下可以了解更多

function get_url_content($host,$url,$query_string) {
//連到 $hostname 的 80 port, 30 是 timeout = 30 秒
$fp = fsockopen ($hostname, 80, $errno, $errstr, 30);
//這裏是 http 的 command,$url 是 hostname 後的 path
// $query 是 GET method 的string, 像 a=1&b=2
fputs ($fp, "GET /$url&$query_string HTTP/1.0\r\nHost: $hostname\r\n\r\n");
$html_page="";

//讀取網頁
while (!feof($fp)) {
$str=fgets ($fp,1024);
$html_page.=$str;
}

//處理掉 http header 段
$html_page=strstr($html_page,"\r\n\r\n");
return $html_page;

}

// $html_page 這個變數就是你的網頁了,內容可能像
// $html_page="<html>\n<body>\n......</html>"
// echo 它就是網頁了

POST 的方法較難處理,你可以參考 www.php.net 的 curl 函數介紹
裏面有 GET/POST 及 https 的方式

981
PHP程式設計討論區 / 把 url 隱藏
« 於: 2003-07-03 10:45 »
這種方式是不安全的
http://www.datatrendsoftware.com/spoof.html

我是覺得在不更改網頁的狀況下
用 socket 方式是最快的
或使用 curl

再試了一下你的 url, 試試這個
[開一個 IE, 不是從這裏連哦]
http://s01.no-ip.org/~test/test/http_referer.php?HTTP_REFERER=abelyang

982
是用 ar 沒有錯
但像
nm
ranlib
libtool
等也常用到
此外 gcc 也很重要  (都可以用 man 查到用法)
建議你去買 Oreilly 的一書講 GNU 程式設計的書
裏面都有寫

我覺得這本書還不錯, 畢竟講這些東西在國內很難找到
nm/ranlib/libtool/gcc(g++)/ld/make/gdb 這些中文資料
不過這本書三年前我看的時候並沒有講到 autoconf/automake
倒是有點美中不足

983
salt 就是編/解碼時的 Key
除了密碼要對外,  salt 也要一樣才可以

984
系統安全討論版 / SOC 監控中心
« 於: 2003-07-03 02:13 »
引用
精誠SOC主要服務內容包括Check Point防火牆、入侵偵測、弱點評估、網頁監控等委外服務機制,與風險評估、資安事件、漏洞分析等顧問諮詢服務,強調以點、線、面的整體防護概念,提供客戶全面性的資訊安全防護。精誠SOC的收費可依大型、中型、小型企業不同需求而定,大型企業大多已購買完善的資安產品,也設有專人負責管理資訊安全設備,所以精誠SOC主要提供外在風險評估、資安事件諮詢等顧問諮詢服務,費用大約是20~180萬;而中型企業大都已購買Check Point防火牆,所以偏好採購精誠SOC的入侵偵測系統(IDS)及外在風險評估服務,費用大約需要10~100萬;至於小型企業,最需要的是防火牆代管服務,約需要2~40萬的費用

以上是精誠網站上的一些資訊 

要導入 資訊安全管理系統(ISMS),其中有一項是監控中心 SOC
就上述入容,技術面,以
iptables/Netscreen 當 Firewall
Snort 做入侵偵測 (其實有許多 IDS廠商根本就是 Copy snort style 後拿出來賣)
Nessus 跑弱點評估 (這個我常用,也常更新 nasl )
tripwire 做檔案檢查
及 Log 分析程式
並用資料庫綜合上述資訊及主機資訊
不知道這樣看來有沒有什麼不足的,純粹看 SOC 的技術面(不看人的因素,不好 Control,感覺起來應是足夠了,不過就怕我有漏掉什麼重要的功能?
大家有什麼建議嗎?

國內的廠商我們大概都來找過我們了,不過總價太高我們付不起 :cry:

奮鬥了好幾天,報表的部份大概都可以處理
為了圖表上一點 (pixel) 的資料如何對應到那筆資料庫真是找番天了

985
PHP程式設計討論區 / 把 url 隱藏
« 於: 2003-07-02 23:49 »
$fp = fsockopen ("hostname", 80, $errno, $errstr, 30);
fputs ($fp, "GET /user_query.php?USER=$USER&PASSWORD=$PASSWORD&typ
e=1 HTTP/1.0\r\nHost: hostname\r\n\r\n");
$html_page="";
while (!feof($fp)) {
        $str=fgets ($fp,1024);
        $html_page.=$str;
 }
$html_page=strstr($html_page,"\r\n\r\n");                      
echo $html_page;

再將他 func 化就好用多了

這樣符合你的需求嗎 ?

986
又過獎了 ~~
我是三年前畢業後開始工作時才接觸 Linux (四個月)
(果然,新鮮人第一個工作都不久)
後來又做了 Windows base 的開發工作 ( outsourcing 那種 )(八個月)
直到現在的工作才算穩定下來 (二年多)
主要的經驗也是在現在的工作上累積下來
我覺得興趣和對自我技術提昇的慾望是學習的不二法門吧
當然, 有很多東西我還是仍要學習的

PS: 大概我每天的工作都會用到 Linux/Unix 有關吧.總得要多想一些步數來籣化工作 ~不然我每台機器都要 telnet 的話,大概 MS windows 的工作列三排也放不下

987
那裏~
兩位過獎了 ~~
不過最近為了小朋友(尤其是這個因素,大 netman 兄的 baby 半個月),及工作,
簡直操番了 ~~

不過我是很樂意貢獻我知道的給大家參考~~
有時間我就會寫寫教學文件給大家參考

我也是看三年前入行時,看 study-area 起家的
從 netman 來, 再回饋給 study-area 也是應該的

988
這種流量統計的資訊對一般人可能沒有用
但對和網路相關的行業而言或許有用也不一定

[root@pc071 etc]# rndc-confgen
# Start of rndc.conf 設定一 rndc.conf ,建議與 named.conf 同一目錄
key "rndc-key" {
        algorithm hmac-md5;
        secret "lnWw5u3Jlr/8jaTpjfWF6w==";
};

options {
        default-key "rndc-key";
        default-server 127.0.0.1;
        default-port 953;
};
#在 named.conf 中加入如下設定
 controls {
       inet 127.0.0.1 port 953
               allow { 127.0.0.1; } keys { "rndc-key"; };

在啟動 DNS 後,即可使用 rndc 來檢測系統
 
[root@pc071 etc]# rndc
Usage: rndc [-c config] [-s server] [-p port]
        [-k key-file ] [-y key] [-V] command

command is one of the following:

  reload        Reload configuration file and zones.
  reload zone [class [view]]
                Reload a single zone.
  refresh zone [class [view]]
                Schedule immediate maintenance for a zone.
  reconfig      Reload configuration file and new zones only.
  stats         Write server statistics to the statistics file.
  querylog      Toggle query logging.
  dumpdb        Dump cache(s) to the dump file (named_dump.db).
  stop          Save pending updates to master files and stop the server.
  halt          Stop the server without saving pending updates.
  trace         Increment debugging level by one.
  trace level   Change the debugging level.
  notrace       Set debugging level to 0.
  flush         Flushes all of the server's caches.
  flush [view]  Flushes the server's cache for a view.
  status        Display status of the server.
  *restart      Restart the server.


就本章主題而言,我們要了解的是流量,故可使用下列指令來看:
rndc –c /etc/rndc.conf –s localhost stats

此時會產生三個檔案於 directory 的目錄裏,我們就其中的 named.stats 來看其內容
[root@pc071 named]# cat named.stats
+++ Statistics Dump +++ (1050394961)
success 4087      #查詢成功的量
referral 0      #referral 的量
nxrrset 0      #找不到記錄的量
nxdomain 56421   #找不到網域名稱
recursion 6765   #遞迴查詢次數
failure 6722      #失敗的量
--- Statistics Dump --- (1050394961)
+++ Statistics Dump +++ (1050395022)
success 4087
referral 0
nxrrset 0
nxdomain 56423
recursion 6765
failure 6722
--- Statistics Dump --- (1050395022)
上述例子中,Statistics 中間的值為每一次 stats 之狀況,而我們若欲有精確而有效的查詢與回應統計,除了時間因素要考量外,尚需注意這些值的意涵:
查詢數:全部數值總合
回應數:除 failure 外之總合
上述的格式是固定的,故我們可以準備一套方法來產生其流量資料,
我們可以產生 mrtg 格式之記錄

#dns-flow.sh
rndc -s localhost -c /etc/rndc.conf stats  #產生 namd.stats 供統計用
sum=0
#查詢量
for c in `cut -f 2 -d' ' /var/named/named.stats | tail -7 | head -6 `   #取得數值部份
do
sum=`expr $sum + $c`      #加總
done
echo $sum            #stdout 供 mrtg 使用
sum=0
#回應量
for c in `cut -f 2 -d' ' /var/named/named.stats | tail -7 | head -5 `
do
sum=`expr $sum + $c`
done
echo $sum
上述僅是一個簡短的 Shell Script,我們可以將其加到排程中,讓其固定時間可以產生結果:

 
使用 mrtg
如果您上面都了解了,這一節的設定其實就會很簡單,本節並教授 mrtg 的安裝,僅列出 mrtg 的設定供您參考,詳細 mrtg 的設定您可用搜尋引擎找到許多,或直接參考官方網站 http://www.mrtg.org
#/usr/local/etc/mrtg
#…前略
Target[xxx.com.tw]: `sh dns-flow.sh `
MaxBytes[xxx.com.tw]: 2500
Title[xxx.com.tw]: xxx.com.tw
Legend1[xxx.com.tw]: DNS查詢(次數/秒)
Legend2[xxx.com.tw]: DNS回應(次數/秒)
LegendI[xxx.com.tw]: DNS查詢
LegendO[xxx.com.tw]: DNS回應
YLegend[xxx.com.tw]: Q. per second
PageTop[xxx.com.tw]: <h1>xxx.com.tw</h1>
  <table>
  <tr><td>位  置:</td><td>….</td></tr>
  <tr><td>負 責 人:</td><td>….</td></tr>
  <tr><td>電話:</td><td>….</td></tr>
  </table>
# ..後略

   搭配 mrtg 及 dns-flow,我們可以定一個更完整的排程,以讓 mrtg 產生正確的流量資料:
   # crontab job
   */5 * * * * /usr/local/bin/mrtg /use/local/etc/mrtg.cfg


如果一切設定皆無問題,您即可以 Broswer 連到 mrtg 網頁查看,
而若您意欲於圖上顯示多條不同線形資料(如:Success/Recursion..等六類),
則您可參考 rrdtools(http://www.rrdtool.org) 之用法,
於 mrtg 的網站上可以找到資料或相關連結。


那如果 Nameserver 有多部怎麼辨 ~~這種問題用類似 FTP 的方法解決就可以了
如果你有做研究的打算, 你還可以試試 A/NS/MX/...等不同 RR 的流量統計
或是將 TTL 值做一個變化,藉以觀察 TTL 值對 DNS 查詢量的影響
你會發現 TTL 值設多少對你的網路有一個最佳解

補允一下, bind 的 source code 中附了一個工具
bind-9.2.2/contrib/queryperf
你可以拿這個工具去測你的機器上跑 DNS 的效率
我用 PIII-450/128RAM ,BIND 9.2.2 , 大概可以到 500 Q/s
而且在流量上就可以顥示出來了

989
肉腳版 / 整批檔案內的字串替換?
« 於: 2003-07-02 01:21 »
find ./ -type f -iname '*.html' -exec .....

990
肉腳版 / 整批檔案內的字串替換?
« 於: 2003-07-02 00:31 »
find ./ -type f -exec replace 'from_str' 'to_str' -- {} \;
try it.

頁: 1 ... 31 32 [33] 34 35 ... 37