IPv6 的監測網站--查看我的主機或電腦是否支援IPv6

URL Link //n.sfs.tw/12972

2018-12-20 15:40:41 By Axer

IPv6 的監測網站的目的是建立一個可以監測 IPv6 網路是否暢通的網站,希望對於下游連線單位檢查是否有通有幫助。

(原程式寫於2009年,所以有些部分很古老,未來的新系統不一定能正確運作)

(未來會更新版本)

程式功能

1. 自動分辨網路媒體,若為v4網路,則顯示黑白照片;v6網路連線顯示彩色照片。

2. 支援非固定網段。下游連線學校可為任意網段,例如資料庫欄位prefix 原本只支援 /48,可設置任意網段。

3. 可設定學校顯示方式

4. 在資料庫有的單位自動累積進站次數

5. 具有測試網站是否支援IPv6 的功能,測後完畢後支援 IPv6 的網站會自動加到列表中。

 

範例

台中市網 IPv6 測試網頁 http://ipv6.tc.edu.tw


當具有IPv6的連線進來,會看到彩色的畫面

 

系統需求

1. 系統需要具有 perl >=5.8 並需要安裝以下 perl 套件

  Net::DNS
  IO::Socket::INET6
  Text::Iconv

安裝  perl 套件可參考 [PERL] 使用CPAN安裝模組此篇使用cpanm來安裝,例如:
# cpanm IO::Socket::INET6

2. 系統必需已 IPv6 網路暢通

安裝

1. 下載 ipv6.tgz

2. 解壓 ,假設要放在 /home/ipv6

# cd /home/

# tar zxvf 705e106aca5e7c95f10d619a71d5b65c.tgz

預設會建立一個 public_html的目錄,更名為ipv6

# mv public_html/ ipv6

目錄架構

# tree /home/ipv6 -L 1

/home/ipv6

|-- adodb5

|-- classes.php

|-- images

|-- index.php

|-- init.php  <== 基本設定檔

|-- ipv6.html

|-- ipv6.pl

|-- ipv6.sql <== 資料庫架構檔

|-- ipv6_1line.pl <== 檢測用程式

|-- js

`-- lib

開啟檔案寫入權限

# chmod 777 /home/ipv6/libs/templates_c/

 

3. 餵入資料庫 (使用mysql)

先建立好資料庫,設定好帳密,假設資料庫ipv6,密碼123456

CREATE USER 'ipv6'@'localhost' IDENTIFIED BY '123456';

GRANT USAGE ON * . * TO 'ipv6'@'localhost' IDENTIFIED BY '123456' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;

CREATE DATABASE IF NOT EXISTS `ipv6` ;

GRANT ALL PRIVILEGES ON `ipv6` . * TO 'ipv6'@'localhost';

餵入資料表

# cd /home/ipv6
# mysql -u ipv6 -p -B ipv6 <ipv6.sql
Enter password: 
123456

資料表有三個

  

 

4. 建立ipv6網域的基本資料

修改資料表 addr,建立基本資料,必填只有這三個,大概像這樣:

  

 

5. 設定網頁參數

修改 init.php

 

6. 修改 apache 設定指到該目錄

 

7. 防火牆

請開啟防火牆,略

 

8. SELINUX

如果有開啟 selinux ,要設定目錄

# chcon -t httpd_sys_content_t -R /home/ipv6

 

安裝完畢,請開啟網頁測試

 

檢測功能測試

在目錄底下有兩個檢測 IPv6 DNS 及WWW 連線的程式:ipv6.pl 及 ipv6_1line.pl

這兩個程式是一樣的,差別在於 ipv6.pl 提供給管理者在 console 下測試,而ipv6_1line.pl 是給網頁表單使用。
程式的參數設定請編輯這兩個檔案。

$RETRANS = 3;  # DNS QUERY重傳次數
$RETRY = 3; # DNS QUERY重試次數
$TCPTIMEOUT = 6; # IPv6 網頁連線逾時時間,單位秒
@DNS = [qw(163.17.40.1 2001:288:5400::1 2001:288:5400::2 163.17.40.2)];  # 請填入DNS 伺服器

程式使用範例:

$ ./ipv6.pl ipv6.tc.edu.tw
檢測結果:網頁IPv6介面正常,能正常取回資料
網站標頭:台中市網 IPv6 檢測及測試網站

 

其它設置

1. 修改網頁顯示文字

網頁的樣板放在 /home/ipv6/libs/templates

/home/ipv6/libs/templates

|-- Documentation.tpl <==下面的文件頁
|-- Footer.tpl
|-- Header.tpl
|-- IPv6CheckForm.tpl <== 測試的表單
|-- IPv6EnableList.tpl <== 檢查通過的清單
|-- Index.tpl
`-- TitleInstr.tpl <== 檢查通過的清單中 TITLE 的說明文件

 

2. 顯示的圖片放在

/home/ipv6/js

blur.jpg, clear.jpg

 

為什麼會放在這,我也不知道寫程式時是怎麼想的。

 


原文 2009-10-19 20:34:23 2010-04-23 15:45:32