寄信 (SMTP) 伺服器寄信至世界各國之現況

為了方便使用者了解本組寄信 (SMTP) 伺服器送信至世界各國之最新情況，我們提供電子郵件寄送記錄中成功寄達者，按所寄達郵件網域其所屬的國家碼排序，以利使用者判別本組伺服器是否仍在運作中，且若當使用者寄往某國家某郵件網域發生問題時，可比較寄往同一國家其他網域最新的成功記錄，以判別是否可能為該郵件網域個別的問題所致。

本項服務於 2013/06/17 上線測試中

成功寄達世界各國的記錄列表

本網頁限本校 IP 位址瀏覽，校外用戶將無法看到本列表，請使用 SSL-VPN 連線後再瀏覽本網頁。

表格說明

重新載入網頁即可取得最新資料。

白底色表 4 小時內記錄，黃底色表已逾 4 小時，紅底色表已逾 1 天。

寄達國家係根據該筆寄送記錄，其收件者郵件網域的伺服器 IP 位址，使用 GeoLite 軟體模組來判別其所屬的國家(This product includes GeoLite data created by MaxMind, available from http://www.maxmind.com)。

有些郵件網域與其收信伺服器(Mail exchanger)分屬不同國家，例如國內有些單位將其郵件網域指向 Google 做為收信伺服器者，則其郵件送達的國家多為美國，而非本國。

有些郵件網域有多部伺服器且分屬不同國家。

每一國家至多保留10筆記錄，每一個寄達網域(收信伺服器 IP 位址)至多保留1筆記錄。

每一封信皆有一郵件編號，不同編號表不同信件。

// 2017/10/19 Turn off all error reporting error_reporting(0); // remote address $remote_addr=$_SERVER['REMOTE_ADDR']; $client_ip = get_client_ip(); if ( cidr_match($client_ip, "140.114.0.0/16") or cidr_match($client_ip, "120.127.160.0/19") ) { // echo "NTHU IP $client_ip\n"; show_data(); } else { // Not NTHU IP //$wiki_content = " * ** 您的連線 IP $client_ip 非本校 IP ($client_ip is not an NTHU IP address.)** ."; //$info = array(); //echo p_render('xhtml',p_get_instructions($wiki_content),$info); msg("您的連線 IP $client_ip 非本校 IP ($client_ip is not an NTHU IP address.)", -1); return -1; } // Function to get the client IP address function get_client_ip() { $ipaddress = ''; if (isset($_SERVER['HTTP_CLIENT_IP'])) $ipaddress = $_SERVER['HTTP_CLIENT_IP']; else if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])) $ipaddress = $_SERVER['HTTP_X_FORWARDED_FOR']; else if(isset($_SERVER['HTTP_X_FORWARDED'])) $ipaddress = $_SERVER['HTTP_X_FORWARDED']; else if(isset($_SERVER['HTTP_FORWARDED_FOR'])) $ipaddress = $_SERVER['HTTP_FORWARDED_FOR']; else if(isset($_SERVER['HTTP_FORWARDED'])) $ipaddress = $_SERVER['HTTP_FORWARDED']; else if(isset($_SERVER['REMOTE_ADDR'])) $ipaddress = $_SERVER['REMOTE_ADDR']; else $ipaddress = 'UNKNOWN'; return $ipaddress; } function cidr_match($ip, $range) { list ($subnet, $bits) = explode('/', $range); $ip = ip2long($ip); $subnet = ip2long($subnet); $mask = -1 << (32 - $bits); $subnet &= $mask; return ($ip & $mask) == $subnet; } function show_data(){ // START OF SHOWING DATA $SMTP_CACHE = '/tmp/smtp_status.txt'; $SMTP_URL = 'http://service.net.nthu.edu.tw/~smtp/smtp_status.txt'; $GOOGLE_MAP_URL = 'http://maps.google.com/maps?q='; // check if not exist or out-dated if (is_file($SMTP_CACHE) && ((time() - filemtime($SMTP_CACHE)) < 60)) { $str = file_get_contents($SMTP_CACHE); } else { $str = file_get_contents($SMTP_URL); // if return, then put contents, else get content if (strlen($str) > 0) { file_put_contents($SMTP_CACHE, $str); } else { $str = file_get_contents($SMTP_CACHE); } } $str = iconv('big5', 'utf-8', $str); $lines = explode("\n", $str); date_default_timezone_set("Asia/Taipei"); echo '</p></div><div align="center">更新時間：'; echo strftime("%c", filemtime($SMTP_CACHE)), ' ', date_default_timezone_get(); echo '<table class="inline">'; echo '<tr class="row0"><th class="col0 centeralign">序號</th><th class="col1 centeralign">國碼</th><th class="col2 centeralign">寄達國家</th><th class="col3 centeralign">寄達網域 (收信伺服器 IP 位址)</th><th class="col4 centeralign">寄達時間</th><th class="col5 centeralign">郵件編號</th></tr>' . "\n"; //$aligns = array(' centeralign', '', '', '', '', ''); $aligns = array('', '', '', '', '', ''); $j = 0; $today = strtotime('now'); $color = ''; foreach ($lines as $line) { if (strcmp($line, '') == 0) { continue; } $j++; $items = explode("\t", $line); // delimiter $gap = $today - strtotime($items[4]); if ($gap > 86400) { echo "<tr class=\"row$j\" style=\"background-color: pink;\">"; } else if ($gap > 4*3600) { echo "<tr class=\"row$j\" style=\"background-color: yellow;\">"; } else { echo "<tr class=\"row$j\">"; } for ($i = 0; $i < 6; $i++) { if ( $i == 3 ) { echo "<td class=\"col$i$aligns[$i]\">@$items[$i]</td>"; } else if ( $i == 2 ) { $country = str_replace(" ", "%20", $items[$i]); if ( $country == "Jordan" ) { $country = "$country,%20Asia"; } echo "<td class=\"col$i$aligns[$i]\"><a href=$GOOGLE_MAP_URL%22$country%22 target=\"_blank\">$items[$i]</a></td>"; }else { echo "<td class=\"col$i$aligns[$i]\">$items[$i]</td>"; } } echo "</tr>\n"; } echo "<tr><td class=\"centeralign\" colspan=\"7\">總計摘 $j 筆記錄</td></tr></table></div><div><p>"; } // END OF SHOWING DATA