วิธีการตรวจสอบว่า Raspberry Pi ต่อ WIFI อยู่รึเปล่า [ตอนที่ 2]

วิธีการตรวจสอบว่า Raspberry Pi ต่อ WIFI อยู่รึเปล่า [ตอนที่ 2]

สืบเนื่องจากตอนที่แล้ว วิธีการตรวจสอบว่า Raspberry Pi ต่อ WIFI อยู่รึเปล่า [ตอนที่ 1] ถ้าไม่มีก็ restart wifi ซะ

การใช้ ifconfig แล้ว grep เอา inet addr อาจไม่ได้ผลครับ ผมเคยเจอเคสที่ grep ยังเจอ inet addr อยู่ แต่เล่นเน็ตไม่ได้ครับ (ความจริงคือหลุดไปแล้ว)

example-wifimaster

ผมแก้ไขโดยให้ใช้วิธีจำลองการใช้เน็ตของเราด้วยการใช้คำสั่ง curl เลยครับ จะ request ไปที่ google หรืออะไรก็ได้ครับ แต่สำหรับผมจะ request ไปยัง radius server ตรงๆเลยครับ ถ้าหลุดไปแล้ว ก็สั่ง ifdown / ifup เหมือนเดิมครับ

code จะเป็นแบบนี้ครับ

#!/bin/bash
while true; do
  curl --fail --silent http://10.5.50.1/status > /dev/null
  if [[ $? -ne 0 ]]; then
    echo "WIFI DOWN! $(date)"
    sudo /sbin/ifdown --force wlan0
    sudo /sbin/ifup --force wlan0
    sleep 5
    python /home/pi/mikrotik-autologin/mtlogin.py 1234 1234
  else
    echo "OK"
    sleep 5
  fi
done;

ภาพตัวอย่างอยู่ด้านบนนะครับ อิอิ

Read More

cURL library กับ ภาษา C

cURL library กับ ภาษา C

เขียนไว้นานแล้วไม่สามารถเขียนต่อได้อีก เดี๋ยววิธีจะหายไป

เริ่มกันเลยดีกว่า

Read More

[note] curly braces และ เพื่อนๆ

[note] curly braces และ เพื่อนๆ

From the top: square brackets, curly brackets (braces),

parentheses, angle brackets, and (in red) inequality signs

 

จาก http://en.wikipedia.org/wiki/Braces_%28punctuation%29#Braces

Read More

[code] อัพโหลดภาพเข้า twitpic โดยใช้ api

[code] อัพโหลดภาพเข้า twitpic โดยใช้ api จะใช้ CURL

ซึ่ง จาก function จะ input username ,password , filepath

function postTwitpic($username='',$password='',$filepath='')
{
	$postfields = array();
	$postfields['username'] = $username;
	$postfields['password'] =  $password;
	$postfields['media'] = "@$filepath";
	$twitter_url = 'http://twitpic.com/api/upload';
	$curl = curl_init();
	curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 2);
	curl_setopt($curl, CURLOPT_HEADER, false);
	curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
	curl_setopt($curl, CURLOPT_BINARYTRANSFER, 1);
	curl_setopt($curl, CURLOPT_URL, $twitter_url);
	curl_setopt($curl, CURLOPT_POST, 3);
	curl_setopt($curl, CURLOPT_POSTFIELDS, $postfields);
	$result = curl_exec($curl);
	curl_close($curl);
	$login_xml = new SimpleXMLElement($result);
	if (isset($login_xml->error)) {
		print_r($login_xml);
		return false;
	} else
	{
		return $login_xml;
	}
}

function return message ที่โพส ยังไง print_r ดูได้ครับ

Read More

getPage และ postPage ด้วย php+cURL

มีฟังก์ชั่น 2 อัน ชื่อตรงตัวเลยครับว่าให้ทำอะไร วิธีใช้ก็อ่านเอาที่ Prototype ของ function ได้เลยครับ

//-----------------------------------------------------------------------------------
function getPage($url, $referer, $timeout, $header){
if(!isset($timeout))
$timeout=30;
$curl = curl_init();
if(strstr($referer,"://")){
curl_setopt ($curl, CURLOPT_REFERER, $referer);
}
curl_setopt ($curl, CURLOPT_URL, $url);
curl_setopt ($curl, CURLOPT_TIMEOUT, $timeout);
curl_setopt ($curl, CURLOPT_USERAGENT, sprintf("Mozilla/%d.0",rand(4,5)));
curl_setopt ($curl, CURLOPT_HEADER, (int)$header);
curl_setopt ($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($curl, CURLOPT_SSL_VERIFYPEER, 0);
$html = curl_exec ($curl);
curl_close ($curl);
return $html;
}
//-----------------------------------------------------------------------------------
//-----------------------------------------------------------------------------------
function postPage($url,$pvars,$referer,$timeout){
if(!isset($timeout))
$timeout=30;
$curl = curl_init();
$post = http_build_query($pvars);
if(isset($referer)){
curl_setopt ($curl, CURLOPT_REFERER, $referer);
}
curl_setopt ($curl, CURLOPT_URL, $url);
curl_setopt ($curl, CURLOPT_TIMEOUT, $timeout);
curl_setopt ($curl, CURLOPT_USERAGENT, sprintf("Mozilla/%d.0",rand(4,5)));
curl_setopt ($curl, CURLOPT_HEADER, 0);
curl_setopt ($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($curl, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt ($curl, CURLOPT_POST, 1);
curl_setopt ($curl, CURLOPT_POSTFIELDS, $post);
curl_setopt ($curl, CURLOPT_HTTPHEADER,
array("Content-type: application/x-www-form-urlencoded"));
$html = curl_exec ($curl);
curl_close ($curl);
return $html;
}
//-----------------------------------------------------------------------------------
จาก  http://www.tellinya.com  คร้าบ

Read More