Monday, November 3, 2008

การติดตั้ง Wireless Network แบบ Ad-hoc เพื่อแชร์ Internet ADSL โดยไม่ต้องใช้ Wireless Access Point



การติดตั้ง Wireless Network แบบ Ad-hoc เพื่อแชร์ Internet ADSL โดยไม่ต้องใช้ Wireless Access Point


 


วิธีที่ 1 คือการทำ Bridge Network ระหว่าง Local Network กับ Wireless Netwrok


ขั้นตอนแรกคือการ setup เครื่อง notebook หรือเครื่องที่มีตัวรับสัญญาณไวเลส เพื่อให้เป็นตัวกระจายสัญญาณแทน Access Point



จากนั้นทำการ Bridge Network ระหว่าง Local Network กับ Wireless Network โดยการ กด Ctrl ค้างไว้ แล้วคลิ๊กเลือก Network ทั้งสอง

จากนั้น คลิ๊กขวาแล้วเลือกที่ Bridge Connection





ในส่วนของเครื่องลูกที่จะเข้าใช้ สัญญาณ นั้น ให้คลิ๊กเลือก SSID ที่เราตั้งไว้ โดยใส่ รหัสผ่านการเข้าใช้8ตาม Network key ที่เราได้ตั้งไว้ แค่นี้ก็เรียบร้อยแล้ว


ปัญหาที่พบ



  • เครื่องแม่กระจายสัญญาณให้กับเครื่องลูกแต่เครื่องลูกไม่สามารถเข้าใช้ internet ไ้ด้ (สาเหตุไม่ทราบว่าเกิดจากอะไร)

  • ไม่แจก IP อัตโนมัติ วิธีการแก้ ให้ทำการตั้งค่า IP ให้แก่เครื่องลูกเอง


 


วิธีที่ 2 คือการ ตั้งค่า Local Network ให้ทำการแชร์ อินเตอร์เน็ต แล้วจากนั้นให้ตัวกระจายสัญญาณ


ขั้นตอนแรกก็คือการตั้งค่า Local Area Connection ให้ Share Internet ให้แก่คอมพิวเตอร์พิวเตอร์เครื่องอื่น ตามรูป



ตั้งค่า TCP/IP เครื่อง Notebook หรือเครื่องที่จะใช้เป็นตัวกระจายสัญญาณดังนี้ครับ



คำอธิบายเกี่ยวกับการตั้งค่า



  • IP Address คือ IP เครื่องของเราว่าเราต้องการให้เครื่องที่เป็นตัวกระจายสัญญาณนี้ มี IP อะไร สามารถตั้งค่าเองได้ครับ

  • Subnet Mask ตั้งค่าเป็น 255.255.255.0

  • Default Gateway ขอให้ดูว่า ตัว router modem เรา ip อะไร ส่วนมากจะเป็น 192.168.1.1

  • DNS Server เหมือนกับ Gateway


setup เครื่อง notebook หรือเครื่องที่มีตัวรับสัญญาณไวเลส เพื่อให้เป็นตัวกระจายสัญญาณแทน Access Point



การตั้งค่าสำหรับเครื่องที่จะใช้เป็นตัวกระจายสัญญาณมีแค่นี้ครับ


ในส่วนของเครื่องลูกที่จะเข้าใช้ สัญญาณ นั้น ให้คลิ๊กเลือก SSID ที่เราตั้งไว้ โดยใส่ รหัสผ่านการเข้าใช้ตาม Network key ที่เราได้ตั้งไว้ แค่นี้ก็เรียบร้อยแล้ว


ปัญหาที่อาจพบ



  • เครื่องแม่ไม่แจก IP ให้แก่เครื่องลูกวิธีการแก้ไขมีดังนี้



ให้เข้าไป เซ็ตค่า TCP/IP ของ Wireless Network ตามนี้ครับ

- IP Address ตั้งค่า อะไรก็ได้ ครับ แต่ห้ามซ้ำกับ IP เครื่องอื่นที่อยู่ในเครือข่ายเดียวกัน

- Subnet Mark ตั้งค่าเหมือนกันคือ 255.255.255.0

- Defualt Gateway ตั้งค่า Gateway โดยใส่ IP เครื่องแม่ลงไปครับ เพราะเราจะเข้า Internet โดยใช้เครื่องที่กระจายสัญญาณเป็นตัวผ่าน

- DNS ใส่เหมือน Gateway



 


 


 

Wednesday, October 1, 2008

เปิดเครื่องไม่ได้ (blue screen 0xc0000139)

ใครหลาย ๆ คนอาจจะเจอปัญหานี่บ่อย ๆ นะครับ นั่นก็คือ Blue screen นั่นเอง พอดีวันนี้ เจอเคสนี้พอดีเลยเอาวิธีแก้มาฝากกันหน่อยครับ

"STOP: c000021a {Fatal System Error}
The Windows Logon Process system process terminated unexpectedly with a status of 0xc0000139 (0x00000000 0x0000000) The system has been shutdown."

ปัญหานี้เกิดจากโปรแกรมที่เราลงไปในเครื่องมัน(เสือก)ลง msvcrt.dll ของเก่าให้เรา วิธีแก้ก็คือให้เราหาไฟล์เจ้าปัญหาจากเครื่องอื่นมาลงทับแทนครับ แต่ปัญหาอยู่ที่ว่าจะลงยังไงล่ะ เพราะขนาดเข้าวินโดว์ยังเข้าไม่ได้เลย

ก็มี 2 วิธีนะครับ

1. ถอด ฮาร์ดดิสจั้ม - -" ขยันแกะจริง ๆ เนอะ (แต่ทำไงได้หาวิธีอื่นไม่ได้แล้ว 555)
2. วิธีนี้สำหรับคนที่ขี้เกียจแกะเครื่องนะครับ (อย่าง notebook จะแกะแล้วจั้มไงหว่า ไม่มีสาย บล็อค hdd ซะด้วย)
วิธีนี้จะใช้แผ่น Hiren boot CD ครับผม 555 Hiren boot CD ช่วยท่านได้
วิธีก็ง่าย ๆ เพียงแค่ copy file ลงใส่ใน handy drive ท่านแล้วก็ใช้แผ่น hiren boot CD Boot เข้าไป
แล้วเลือก Menu NTFS/EXT แล้วเลือก NTFS DOS PRO นะครับ จากนั้น
ก็ลอง เข้าดู drive ต่าง ๆ แล้ว ใช้คำสั่ง

dir

เพื่อดูว่า drive ไหนเป็น drive ไหน ไฟล์มีอะไรบ้าง แล้วไฟล์ msvcrt.dll เจ้าปัญหาที่เรากอปมาเพื่อจะเอาไปทับไฟล์ใน hdd อยู่ไหน จากนั้นก็ใช้คำสั่ง

copy c:\msvcrt.dll e:\windows\system32

แค่นี้ก็เรียบร้อยแล้ว

[+] Writed by กองทัพ [+]

Sunday, September 21, 2008

ตรวจสอบ IP Address และ Hostname



จากเดิมที่ได้พูดถึงเรื่องการตรวจเช็ค Proxy ที่ใช้นะครับ มาถึงคราวนี้เป็นการตรวจสอบ IP Address และ Hostname กันบ้างนะครับ


ในบางครั้งเราต้องการตรวจสอบว่าผู้ที่เข้ามาเยี่ยมชมเว็บไซต์ของเราหรือผู้ที่มาโพสข้อความในเว็บบอร์ดของเรานั้นมาจากที่ใด ซึ่งวิธีการที่ง่ายและเป็นที่นิยมใช้กันก็คือการตรวจสอบ IP Address ของเครื่องผู้ชมที่เปิดดูเว็บไซต์ของเรานั่นเอง


โดยหลักการในการตรวจสอบ IP Address นี้ทำได้โดยการตรวจจาก Predefined Variable
ของเว็บเซิร์ฟเวอร์ที่เราใช้งานอยู่ ซึ่ง Predefined Variable นี้จะเป็นตัวแปรที่สร้างขึ้นมาโดยอัติโนมัติทุกครั้งที่มีการรันสคริปของ PHP


Predefine Variable ที่เก็บค่า IP Address ของผู้ใช้ไว้ก็คือ REMOTE_ADDR ดังนั้นเมื่อเราต้องการตรวจสอบค่า IP Address ของผู้ใข้ เราจะใช้ฟังก์ชัน getenv ในการดึงเอาค่าของ Predefined Variable นี้มาเก็บไว้ในตัวแปร $ip ดังนี้


<?
$ip=getenv(REMOTE_ADDR);
print "Your IP Address is $ip";
?>


ผลลัพธ์ที่ได้คือ


Your IP Address is 127.0.0.1

จะเห็นได้ว่าโปรแกรมนี้สามารถตรวจสอบ IP Address ของผู้ใช้ได้ในระดับหนึ่ง แต่จะมีปัญหาในกรณีที่เครื่องผู้ใช้ได้ทำการปรับแต่งเครื่องให้ใช้ Proxy Server ซึ่งแทนที่เราจะได้ IP Address ของเครื่องผู้ใช้ เราก็จะได้รับ IP Address ของ Proxy Server แทน หรือในบางกรณีเราอาจจะได้ IP Address ของ Cache Server ของ ISP ที่ผู้ใช้ได้ใช้บริการอยู่ ดังนั้น ในกรณีที่เกิดเหตุการณ์นี้ตัวแปร REMOTE_ADDR จะไม่ได้เก็บ IP Address ที่แท้จริงของเครื่องผู้ใช้แต่จะเก็บ IP Address ของ Proxy Server หรือ Cache Server และจะเกิดตัวแปร HTTP_X_FORWARDED_FOR ขึ้นมา ซึ่งจะเป็นตัวแปรที่เก็บ IP Address ที่แท้จริงของเครื่องผู้ใช้แทน ดังนั้นเราจะทำการแก้โปรแกรมข้างต้นของเราเพื่อให้เก็บ IP Address ได้อย่างถูกต้อง ดังนี้



<?php
if (getenv(HTTP_X_FORWARDED_FOR))
$ip=getenv(HTTP_X_FORWARDED_FOR);
else
$ip=getenv(REMOTE_ADDR);


print "Your IP Address is $ip";
?>


ในโปรแกรมของเรานั้นเริ่มต้น เราจะทำการเช็คดูก่อนว่าตัวแปร HTTP_X_FORWARDED_FOR นั้นมีการเซ็ตไว้หรือเปล่า ถ้ามีการเซ็ตไว้แสดงว่ามีการใช้ Proxy Server หรือ Cache Server ดังนั้นตัวแปร HTTP_X_FORWARDED_FOR ก็จะเก็บ IP Address ที่แท้จริงไว้ ดังนั้นเราก็จะใช้ค่าจากตัวแปรนี้ แต่ถ้าไม่มีการเซ็ตตัวแปรนี้ไว้ เราก็จะเก็บค่า IP Address จากตัวแปร REMOTE_ADDR ตามปกติ


สำหรับชื่อของ Predefined Variable ที่เราใช้ในที่นี้คือ REMOTE_ADDR และ HTTP_X_FORWARDED_FOR อาจจะมีชื่อที่แตกต่างกันไปได้ ขึ้นอยู่กับว่าเราใช้เว็บเซิร์ฟเวอร์อะไร โดยในที่นี้เราจะอ้างอิงจาก Apache Webserver เป็นหลัก โดยถ้าเราใช้ Web Server อื่นนอกจาก Apache และต้องการตรวจสอบว่ามี Predefined Variable อะไรบ้างก็สามารถตรวจสอบได้ โดยใช้ฟังก์ชัน phpinfo() เพื่อตรวจสอบดังนี้


<?
phpinfo();
?>


โดยฟังก์ชันนี้จะแสดงตัวแปรที่เป็น Predefined Variable ทั้งหมดออกมา


ลำดับต่อไปเมื่อเราได้หมายเลข IP Address มาแล้ว เช่น 203.151.206.76 แล้วเราจะรู้ได้อย่างไรว่า IP Address หมายเลขนี้นี้มีชื่อโฮสต์ว่าอะไร หรือว่าบางท่านอยากจะทราบว่าเวบไซต์ http://www.cnn.com เนี่ย มีหมายเลข IP เป็นอะไร ซึ่ง PHP นั้นก็มีฟังก์ชันที่ช่วยอำนวยความสะดวกให้กับผู้ใช้ในการตรวจสอบหมายเลข IP Address จากชื่อโอสต์หรือแม้กระทั่งตรวจสอบชื่อโอสต์จากหมายเลข IP Address ที่กำหนดมาให้


ในการตรวจสอบชื่อโฮสต์จาก IP Address ที่กำหนดให้ เราจะใช้ฟังก์ชัน gethostbyaddr() ซึ่งฟังก์ชันนี้จะรับ IP Address เป็นพารามิเตอร์และจะ return ชื่อโฮสต์กลับมา แต่ถ้าไม่สามารถตรวจสอบชื่อโฮสต์ได้ก็จะ return ค่า IP Address นั้นกลับมาคืน ตัวอย่างการใช้งานมีดังนี้


<?
$ip = "203.151.206.76";
$host = gethostbyaddr($ip);
print "Host name for $ip is $host";
?>


ผลลัพธ์ที่ได้ คือ


Host name for 203.151.206.76 is host76.pantip.com


ในการตรวจสอบ IP Address จากชื่อโฮสต์ที่กำหนดให้ เราจะใช้ฟังก์ชัน gethostbyname() ซึ่งฟังก์ชันนี้จะรับชื่อโฮสต์ เป็นพารามิเตอร์และจะ return IP Address กลับมา แต่ถ้าไม่สามารถตรวจสอบ IP Address ได้ก็จะ return ชื่อโฮสต์นั้นกลับมาคืน ตัวอย่างการใช้งานมีดังนี้


<?
$host = "www.yahoo.com";
$ip = gethostbyname($host);
print "IP Address for $host is $ip";
?>


ผลลัพธ์ที่ได้ คือ


IP Address for www.yahoo.com is 66.218.71.95

บางโฮสต์อาจจะมี IP Address ที่อ้างถึงมากกว่านี้ ดังนั้นวิธีการตรวจสอบว่าโอสต์นี้มี IP Address ทั้งหมดเท่าไหร่นั้น เราจะใช้ฟังก์ชัน gethostbynamel() มาช่วยแทน โดยฟังก์ชันนี้จะทำการเก็บ IP Address ที่มีทั้งหมดไว้ใน array ซึ่งตัวอย่างการใช้งานมีดังนี้


<?
$host="www.microsoft.com";
$ip = gethostbynamel($host);
for ($i=0; $i<count($ip); $i++)
{
print $ip[$i]."<BR>";
}
?>



ผลลัพธ์ที่ได้คือ


207.46.249.27
207.46.134.190
207.46.249.190
207.46.134.155
207.46.249.222


 

การเขียน สคริป PHP เพื่อ Check Proxy



IP Address คือ เลขรหัสประจำตัวของเครื่องคอมพิวเตอร์เครื่องใดๆ ที่อยู่ใน Internet ซึ่งเปรียบเสมือนเบอร์โทรศัพท์ เลขทะเบียนของรถยนต์ หรือเหมือนเลขที่บ้าน ซึ่งจะใช้อ้างอิงในการติดต่อสื่อสารระหว่างเครื่องคอมพิวเตอร์ในเครือข่าย เมื่อจะติดต่อ หรือส่ง - รับข้อมูลกัน จะได้ระบุได้ถูกว่าต้องการติดต่อกับเครื่องที่มี IP อะไร (เปรียบเสมือนว่าถ้าจะคุยกับผม จะต้องโทรไปที่เบอร์ไหน หรือส่งจดหมายไปที่บ้านเลขที่อะไร) ดังนั้น เครื่องทุกเครื่องที่ต่อ Network ด้วยกัน จะต้องมี IP Address ที่ไม่ซ้ำกัน เพื่อจะได้ไม่สับสนเวลาติดต่อสื่อสารกัน


ในโลก internet การปลอมแปลง IP Address นั้นสามารถทำได้โดยการใช้ Proxy เพื่อปิดบัง IP ที่แท้จริง


ประเภทของ Proxy มีดังต่อไปนี้


Transparent Proxy
Anonymous
Distorting
High Anonymous (Elite)


โดยทั่วไปเรามักจะใช้ Anonymous, Distorting และ High Anonymous (หรือ Elite) ซึ่งแบบท้ายสุดจะเป็นแบบที่ปลอดภัยมากที่สุด เพราะจะไม่ส่งค่า เฮดเดอร์ HTTP_VIA และ HTTP_FORWARED_FOR ไปให้ปลายทาง


เรามักจะไม่นิยมใช้ Transparent Proxy เนื่องจาก Proxy ตัวนี้จะส่ง IP ของเครื่องเราผ่านเฮดเดอร์ที่ชื่อ HTTP_FORWARED_FOR และจะส่งเฮด HTTP_VIA ไปยัง server ปลายทาง


การตรวจสอบ Proxy สามารถเขียน code php เพื่อใช้ตรวจสอบได้ดังนี้


<?php


/**
* @ITEASY
* @copyright 2008
*/


$addr = $REMOTE_ADDR;
$fw = $HTTP_X_FORWARDED_FOR;
$via = $HTTP_VIA;
echo "Your IP = $addr <br>";
echo "IP FW to Proxy server = $fw <br>";
echo "Proxy Server = $via <br>";


?>


หรือสามารถเขียนโดยใช้ฟังก์ชัน getenv ในการดึงเอาค่าจาก Predefined Variable


<?php


/**
* @sniffer
* @copyright 2008
*/


$addr = getenv(REMOTE_ADDR);
$fw = getenv(HTTP_X_FORWARDED_FOR);
$via = getenv(HTTP_VIA);
echo "Your IP = $addr <br>";
echo "IP FW to Proxy server = $fw <br>";
echo "Proxy Server = $via <br>";


?>

Saturday, September 20, 2008

เทคนิคการแก้ปัญหา NTLDR is missing


หลาย ๆ คน คงเคยเจอกับปัญหา NTLDR is missing ที่เป็นเช่นนี้ก็เนื่องมาจาก ซอฟแวร์ระบบหรือ Windows ที่ท่านใช้อยู่ หาไฟล์ที่ใช้สำหรับบูตเข้า windows ไม่เจอ นั่นเอง


วิธีการแก้ไขก็มีหลายวิธีหลายแนวทางแล้วแต่ความสะดวกของแต่ละคนนะครับ หลักการง่าย ๆ ก็คือ นำไฟล์ ntldr จากเครื่องอื่นมาใส่เข้าไปแค่นี้ก็จบแล้ว แต่เราจะทำยังไงละให้สะดวกในการนำไฟล์ดังกล่าวมาใส่ หลาย ๆ คน อาจจะ jump harddisk (ถอดฮาร์ดดิสจากอีกเครื่องหนึ่งมาใส่อีกเครื่องหนึ่ง) จากประสบการณ์ของผมแล้ววิธีแก้ของผมก็มีดังนี้นะครับ


ก่อนอื่นผมก็ต้องขอพูดถึงเรื่องการลง วินโดว์ซะก่อน หลาย ๆ คน คง Format HDD ตอนลงวินโดว์ เป็น NTFS ซะส่วนใหญ่นะครับ แต่มีปัญหาตรงที่ว่า เวลาเราทำแผ่นบูตเข้าสู่ DOS ถ้าบูทธรรมดามันมองไม่เห็น ไดร์ฟที่เรา FORMAT เป็น NTFS นะสิครับ แย่เรย แต่วิธีของผมนี้ หมดปัญหานี้ไปได้เลยเพราะ Hiren boot cd ช่วยท่านได้เริ่มกันเลยดีกว่า


1. ก่อนอื่นก็ต้องเตรียมแผ่น Hiren boot CD ซึ่งของผมใช้ แผ่น Quick PC 100 นะครับ (เป็นแผ่นโปรดของผมเลยเพราะว่ามีวินโดว์ XP ที่ลงแบบสบาย ๆ ให้ด้วยแล้วก็ไม่ได้ลงโปรแกรมอะไรมากมาย)


2. ไฟล์ NTLDR จากเครื่องอื่นครับ กอปใส่ handy drive หรือ ทรัมไดร์ฟ ไปเลยครับ จากนั้น ไปที่


start > run > พิมพ์ cmd

แล้วก็ ไปที่ ไดร์ฟ Handy drive ของเรา เพื่อไปเซ็ต attribute ไฟล์ ntldr โดยพิมพ์คำสั่ง

attrib -r -h -s -a ntldr


3. เมื่อมีครบหมดแล้วก็ตั้งค่า BIOS ให้บูตจากแผ่นนะครับ แล้วเลือก Hiren boot cd จากนั้นไปที่ เมนู NTFS (FileSystems) Tools(จะเป็นเกี่ยวกับโปรแกรมจัดการไฟล์ NTFS)


4. เลือก NTFS Dos Pro 5.0 เพื่อเข้าสู่ DOS MODE แล้วก็ กอปปี้ไฟล์ ntldr ไปไว้ยัง drive ที่ใช้สำหรับบูตเข้าวินโดว์โดยส่วนมากจะเป็นไดร์ฟ C: โดยใช้คำสั่ง


copy H:\ntldr c: (ควรจะสำรวจดูก่อนนะครับว่า handy drive ของเราเป็นไดร์ฟอะไรและไดร์ฟที่บูตเข้าวินโดว์เป็นไดร์ฟอะไร โดยใช้คำสั่ง dir สำรวจดูครับ


กะว่าจะพิมพ์นิดเดียวนะเนี๊ย เล่นซะยาวเลย เห่อ ๆ


[+] Writer [+] กองทัพ