ยินดีต้อนรับคุณ, บุคคลทั่วไป กรุณา เข้าสู่ระบบ หรือ ลงทะเบียน
ส่งอีเมล์ยืนยันการใช้งาน?

» Enter Pinkkeyhost Website «

เว็บโฮสติ้ง Pinkkeyhost :: Support Center
Pinkkeyhost
หน้า: 1
  พิมพ์  
ผู้เขียน หัวข้อ: โค้ด whois ที่ใช้อยู่เอามาใช้กับโฮสของคุณแมนไม่ได้น่ะครับ  (อ่าน 20638 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
bunpot
Newbie
*
ออฟไลน์ ออฟไลน์

กระทู้: 23



« เมื่อ: 12 ต.ค. 2006 04:02 »

 Embarrassed แย่เลย สงสัย php คนละเวอร์ชั่นกัน

เช็คมาแล้ว เดิมที่ใช้อยู่เป็นเวอร์ชั่น 4.4.2  ของโฮสคุณแมน 4.4.4   
แบบนี้จะแก้ไงให้กลับมาใช้ได้ล่ะครับเนี่ย Huh?
« แก้ไขครั้งสุดท้าย: 12 ต.ค. 2006 04:14 โดย bunpot » บันทึกการเข้า

PinkkeyHost
Online Supported
Administrator
Sr. Member
*****
ออฟไลน์ ออฟไลน์

กระทู้: 363


« ตอบ #1 เมื่อ: 12 ต.ค. 2006 12:14 »

ไม่น่าเป็นที่เวอร์ชั่น php ครับ
ปัญหาหลักเกี่ยวกับการใช้งาน php ให้สัณนิษฐานไว้ก่อนเลยว่าเป็นที่ register_globals ครับ
เนื่องจากทางโฮสตั้งค่าไว้ที่ off สำหรับทุก user และตั้งให้เป็น on เฉพาะ user ที่จำเป็นต้องใช้
เพื่อความปลอดภัยของระบบโดยรวมครับ

ยังไงลองส่ง code มาให้ช่วยดูหรือลองแก้ไขเองตาม http://support.pinkkeyhost.com/index.php?topic=15.0
หากไม่ได้ส่งเมล์แจ้ง username มาให้ทางเราเปิด register_global ให้ได้เลยครับ
บันทึกการเข้า

bunpot
Newbie
*
ออฟไลน์ ออฟไลน์

กระทู้: 23



« ตอบ #2 เมื่อ: 12 ต.ค. 2006 15:42 »

แก้ตามนั้นแล้ว ทดลองในเครื่องที่บ้านก็ใช้ได้ แต่พออัพโหลดแล้วทดลองดูเป็นแบบนี้ครับ

Warning: fsockopen() [function.fsockopen]: php_network_getaddresses: getaddrinfo failed: hostname nor servname provided, or not known in /home/gptoin/domains/gptoin.com/public_html/home/whois.php on line 31

Warning: fsockopen() [function.fsockopen]: unable to connect to whois.internic.net:43 in /home/gptoin/domains/gptoin.com/public_html/home/whois.php on line 31
Error: ติดต่อฐานข้อมูลโดเมนไม่ได้!*&@!

ผมไม่เก่ง php ซะด้วย  Huh?

ก่อนที่จะแทรกโคดมันแสดงเป็นหน้าขาวๆ ครับ แต่หลังแทรกโคดแล้วมันก็เป็นแบบที่เห็นแหละครับ
ไม่ทราบว่าต้องแก้โคดตรงไหนอีกหรือเปล่าครับ

นี่คือโค้ดที่ผมใช้อยู่ครับ
โค๊ด:
<?php

$globals_test 
= @ini_get('register_globals');
if ( isset(
$globals_test) && empty($globals_test) ) {
$types_to_register = array('GET''POST''COOKIE''SESSION''SERVER');
foreach (
$types_to_register as $type) {
$arr = @${'_' $type};
if (@
count($arr) > 0)
extract($arrEXTR_SKIP);
}
}


$port='43';
if (empty(
$domain)) { 
die;
}

if ( (
eregi("com"$tld )) || (eregi("net"$tld )) || (eregi("org"$tld )) ||
 (eregi("cc"$tld )) || (eregi("biz"$tld ))  ) {
$server='whois.internic.net';
} else if ( 
eregi("th"$tld ) ) {
$server='whois.thnic.net';
}

$domain$domain.$tld;
echo 
"<b>กำลังเชื่อมต่อ server ...</b>";

$sock fsockopen ($server$port); 
if (!
$sock) {
echo "Error: ติดต่อฐานข้อมูลโดเมนไม่ได้!*&@!";
}
else {
  echo 
" Server Ok..<br>";


   
fputs ($sock"$domain\r\n"); #HELO ได้นะ
  
echo "เช็ค: <b>$domain</b><br>";
 
while(!
feof($sock)) {
    
$reply .= fgets ($sock1024); 
}

$reply=nl2br($reply);

   if ( (
eregi("No match",$reply)) || (eregi("No entries",$reply)) ) {
   echo ("<font color=#339900>Available/ ว้าว! ยินดีด้วย  $domain ยังว่างอยู่!!จดได้เลยจ้า&nbsp;&nbsp;</font>");
include(
"whoistemplate02.php");
   } else {
   echo ("<font color=#FF0033>has been registered/มีเจ้าของแล้วจ้า !!</font>");
   echo "<p>$reply";
   } 
  }

?>


รบกวนหน่อยครับ
ขอบคุณครับ
« แก้ไขครั้งสุดท้าย: 12 ต.ค. 2006 15:47 โดย bunpot » บันทึกการเข้า

bunpot
Newbie
*
ออฟไลน์ ออฟไลน์

กระทู้: 23



« ตอบ #3 เมื่อ: 13 ต.ค. 2006 01:39 »

ปวดหัวแหะ...

ถ้าไม่ได้ยังไงเดี๋ยวหาโค้ดตัวใหม่มาใช้ แต่ยังไงช่วยดูปัญหาของโค้ดตัวนี้ด้วยนะครับ

ผมว่ามันไม่น่าเกี่ยวกับ register_globals  เพราะแทรกโค้ดลองในเครื่องที่บ้าน ก็ปกติดีครับ
บันทึกการเข้า

PinkkeyHost
Online Supported
Administrator
Sr. Member
*****
ออฟไลน์ ออฟไลน์

กระทู้: 363


« ตอบ #4 เมื่อ: 13 ต.ค. 2006 12:38 »

1. code เดิมไม่รองรับ register_global=off การแก้ไขโดยเพิ่ม code ด้านบนถูกต้องแล้วครับ
2. จาก error มันหา ip ไม่เจอครับ ตรงนี้ไม่เกี่ยวกับ register_global แล้วครับ เดี๋ยวยังไงจะรีบตรวจสอบและแจ้งผลให้ทราบครับ

ต้องขออภัยในความไม่สะดวกมา ณ ที้นี้
บันทึกการเข้า

PinkkeyHost
Online Supported
Administrator
Sr. Member
*****
ออฟไลน์ ออฟไลน์

กระทู้: 363


« ตอบ #5 เมื่อ: 13 ต.ค. 2006 13:16 »

เนื่องจากผมได้ปิด recursive dns ไว้
คือ dns จะ response เฉพาะ domain ที่มีอยู่ภายใน database ของเครื่องเท่านั้น เพื่อป้องกัน โดน DNS DOS
ส่วนการใช้งานโดยทั่วไป ตัวระบบจะสามารถหา ip ของเครื่องที่ต้องการติดได้ได้จาก dns ของทาง isp อยู่แล้ว

แต่การใช้งานผ่าน php นั้นมันไปหาจาก local dns เพียงอย่างเดียว จึงทำให้ไม่สามารถได้ ip ของ internic มา จึงเกิดปัญหาขึ้น
ตอนนี้ผมได้เปิด recursive dns ให้ใช้งานเหมือนเดิมแล้ว
ซึ่งจะพยายามหาทาง config ให้ dns recursive เฉพาะการร้องขอจาก localhost เท่านั้น

ยังไงลองทดสอบการใช้งานดูอีกทีครับ ตอนนี้น่าจะใช้งานได้แล้ว  Cheesy
บันทึกการเข้า

bunpot
Newbie
*
ออฟไลน์ ออฟไลน์

กระทู้: 23



« ตอบ #6 เมื่อ: 13 ต.ค. 2006 18:46 »

ขอบคุณมากครับ ตอนนี้ใช้งานได้แล้วครับ  Grin
บันทึกการเข้า

PinkkeyHost
Online Supported
Administrator
Sr. Member
*****
ออฟไลน์ ออฟไลน์

กระทู้: 363


« ตอบ #7 เมื่อ: 14 ม.ค. 2008 18:03 »

เนื่องจากผมได้ปิด recursive dns ไว้
คือ dns จะ response เฉพาะ domain ที่มีอยู่ภายใน database ของเครื่องเท่านั้น เพื่อป้องกัน โดน DNS DOS
ส่วนการใช้งานโดยทั่วไป ตัวระบบจะสามารถหา ip ของเครื่องที่ต้องการติดได้ได้จาก dns ของทาง isp อยู่แล้ว

แต่การใช้งานผ่าน php นั้นมันไปหาจาก local dns เพียงอย่างเดียว จึงทำให้ไม่สามารถได้ ip ของ internic มา จึงเกิดปัญหาขึ้น
ตอนนี้ผมได้เปิด recursive dns ให้ใช้งานเหมือนเดิมแล้ว
ซึ่งจะพยายามหาทาง config ให้ dns recursive เฉพาะการร้องขอจาก localhost เท่านั้น

ยังไงลองทดสอบการใช้งานดูอีกทีครับ ตอนนี้น่าจะใช้งานได้แล้ว  Cheesy


เพิ่มเติม
หลังจากเปิด recursive dns ไปไม่นาน
ทางโฮสได้ปรับ config ของ dns ใหม่ให้ recuesive ได้เฉพาะ localhost เพื่อความปลอดภัยของระบบเรียบร้อยแล้วครับ
หากเป็น request จากภายนอก server ก็จะ response เฉพาะโดเมนที่อยู่ใน server เท่านั้น เพื่อป้องกันการโดนโจมตี DNS FLOOD
บันทึกการเข้า

หน้า: 1
  พิมพ์  
 
กระโดดไป:  

PinkkeyHost.com - บริการ เว็บโฮสติ้ง จดโดเมน Co-Location & Dedicated Server

reduce website downtime
Powered by SMF 1.1.16 | SMF © 2006-2007, Simple Machines | Thai language by ThaiSMF
XHTML | CSS | Aero79 design by Bloc
หน้านี้ถูกสร้างขึ้นภายในเวลา 0.091 วินาที กับ 21 คำสั่ง