Posts

Showing posts from 2015

手動更新 GeoIP 資料庫

Image
GeoIP 可以拿來識別 IP 的來源 可以 經由 php 檔案的載入 來判斷 也可以經由 apache 的 mod_geoip 套件來載入 利用 apache 的套件載入判斷速度會比較有效率 而 geoip 的值也會直接寫入到 $_SERVER 變數裡面 對於開發者來說會比較方便 這張圖就是裝了 mod_geoip 後多出來的 $_SERVER 變數 GeoIP 是由 maxmind  維護的 maxmind 有提供自動更新 GeoIP.dat 的 solution 雖然說 mod_geoip 是套件 但基本上更新 GeoIP database 的機率是非常低的 這邊提供一個可以手動更新的方式 可以到這邊下載最新的 GeoLite City 資料庫 http://dev.maxmind.com/geoip/legacy/geolite/ 下載完後到主機上找尋 GeoIP.dat 檔案 把檔案至換成下載的那個檔案 以 CentOS7 來說會是在 # /usr/share/GeoIP/GeoIP.dat 而經由替換新的 GeoIP 資料庫後 $_SERVER 的變數也會像上面那張圖多了經緯度跟郵遞區號等其他資訊 以我的經驗來看,準了很多喔! 原本資料庫大概 1.3M 更新後的資料庫有 15.2M 就勤勞一點手動更新吧! 參考來源: http://piwik.org/faq/how-to/faq_163/

如何用 SSH 的方式 Mount Linux 資料夾

如果主機沒開放 Samba 但又想要 mount 該台主機的資料夾 就可以考慮用 SSHFS 掛載的方式 簡單的說,可以用 SSH 連線來掛載遠端的資料夾 如果是用 CentOS 可以用 yum install sshfc 的方式下載這個套件 掛載方式如下 # sshfs USER@IP:/home/dir /mnt/local_dir 上面方式適用一次性的掛載 如果要開機就掛載 可以把下面這段寫到 /etc/rc.local 中 # echo PASSWORD | sshfs USER@IP:/home/dir /mnt/local_dir -o workaround=rename -o password_stdin [2015-05-25 Updated] 如果想要讓該資料夾可以被 root 以外的使用者存取 可加入  -o allow_other 參數 # echo PASSWORD | sshfs   -o allow_other USER@IP:/home/dir /mnt/local_dir -o workaround=rename -o password_stdin 參考資料 Automating sshfs command sshfs mount, sudo gets permission denied

BENEX ET-3173-A 試用心得

Image
承襲上一代 3171R 優異性能的血統 BENEX 力群科技又開發出更小更亮的 新一代自行車燈的代表作 3173-A 微小自動車前燈(簡稱 3173A) 既亮又小又輕又聰明是個人人夢寐以求車燈 3171R vs 3173A 上方照 不過沒有一支燈是完美的 我把這支燈歸類在市區、市郊使用 郊外不是不能用 郊外用這支燈超有優越感的~ 只是鄉下有燈光的地方少 燈會用最大的功率去輸出 自然可以用的時間就會變的短很多 如果您要長途騎乘用的 或許可以考慮 3170R 或是一次裝兩支 3173A 也都大有人在 (同時裝兩支會不會干擾的問題下面有提到) 以下是我使用後歸類的幾點特性 如有問題歡迎發問~ 汽車化車燈 可全天候使用,內建光源感應器,白天太亮燈光會自動關閉,一到光源不足的地方如隧道或室內,會立即自動開啟燈光,讓您的視線永遠是保持明亮的。晚上騎車更是方便,當經過有路燈的地方會自動調暗,換到了黑暗的地方就會自動調整為更亮的光源,這支光感比 3171R 還要靈敏,3171R 可能沒注意還感受不太到光源的調整,但 3173A 遇到明暗差異很大的地方會立即給予 由於這支內建震動/移動感應器,可以透過震動去感應您車子是否正處於移動的狀態,當車子靜止超過 50 秒,車燈會呈現休眠狀態,當車子移動後,又會立刻的亮起來。不過這個震動感應器非常的省電,燈開啟後如果都不去動他,官方號稱可以待機三個月喔! 右邊的視線比較遠,由於台灣是左駕,所以行人道會在右邊,右邊比較高的好處是可以比較早看到右邊的人或是車等,可提早反應。您或許會有疑問說為什麼不是左邊比較高呢?如果左邊比較高,那麼照到的就會是對方的來車喔!雖然是有截止線,但不正確的使用還是會讓對向的來車駕駛不舒服的! 完美的車燈光型 何謂光型?這邊指的是車燈照射出去涵蓋的範圍,如果在完全無光害的地方,可能可以照射得很遠很廣,但實際的使用情況我們只需要照射前方 10 公尺的距離大概就夠了,這個範圍內夠亮夠廣。車燈安裝得太遠或是太近都不會達到最好的效果,官方建議 10 公尺的照射範圍是最佳的。 3173A 的光型比較集中,遠、近區較不明顯,而 3171R 的遠近區明顯許多。3173A 前方照的比較集中,而 3171R 左右的部分會比較廣一點點,各有各的特色

Google Cloud Message(GCM) Unauthorized

如果你發送推撥 Push Notification 遇到 Google 回應 Unauthorized 可以先檢查 Google Develop Console 的 white list 是否有加入主機的 IP 請注意一下是否你的主機有支援 IPV6 如果有也請把 IPV6 address 一併加入 以我使用的 LINODE 來說 設定 IPV4 還是會出現 Unauthorized 設定好 IPV6 就可以正常推撥囉! PS. IPV4 後面的 /64 可以不用加入,加入會驗證不過 Reference Android GCM Unauthorized 401 error with PHP

Google reCAPTCHA php sample code

Image
Google 推出了 驗證 是否為機器人的服務 以下這段是跟 Google 驗證資料是否正確的程式 $captcha = $_POST['g-recaptcha-response']; $secret_key = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'; $response = validate_google_recaptcha($secret_key, $captcha); if ($response->success == false) { echo 'You are spammer ! Get the @$%K out'; } else { echo 'Thanks for posting comment.'; } function validate_google_recaptcha($secret_key, $captcha) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "https://www.google.com/recaptcha/api/siteverify"); curl_setopt($ch, CURLOPT_HEADER, false); curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); $param = "secret=".$secret_key."&response=".$captcha."&remoteip=".$_SERVER['REMOTE_ADDR']; curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $param); $temp = curl_exec($ch); curl_close($ch); return json_decode($temp); }