เมนู

รหัสโทรศัพท์กับพื้นที่ จับคู่กันได้แค่ไหนในทางปฏิบัติ

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

เผยแพร่เมื่อ

  • ข้อมูลทดสอบ
  • เบอร์โทรศัพท์

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

รหัสโทรศัพท์บอกพื้นที่ได้จริงหรือไม่?

บอกได้บางส่วน และเฉพาะกับเบอร์ประเภทหนึ่งเท่านั้น เบอร์โทรศัพท์บ้านแบบดั้งเดิมที่ผูกกับสายทองแดงมีรหัสนำหน้าที่ถูกกำหนดตามเขตพื้นที่ทางภูมิศาสตร์จริง เมื่อเห็นรหัสนำหน้าก็อนุมานได้ว่าสายนั้นติดตั้งอยู่จังหวัดใด

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

ความแตกต่างที่สำคัญอีกประการคือจำนวนหลักในแต่ละประเทศไม่เท่ากัน บางประเทศใช้รหัสประเทศหนึ่งหลัก บางประเทศใช้สองหลัก บางประเทศใช้สามหลัก และความยาวของหมายเลขภายในก็ต่างกันด้วย ซึ่งทำให้การแยกส่วนของหมายเลขด้วยตำแหน่งคงที่ใช้ไม่ได้กับทุกประเทศ

ด้วยเหตุนี้ ระบบที่ยืนยันว่าผู้ใช้อยู่ผิดพื้นที่เพราะรหัสนำหน้าไม่ตรงกับที่อยู่ที่กรอก จึงมีโอกาสสูงที่จะบอกผู้ใช้ที่ถูกต้องว่าเขาผิด

  • เบอร์บ้านแบบดั้งเดิม: ผูกกับสายทองแดงและมีรหัสนำหน้าที่กำหนดตามเขตพื้นที่ทางภูมิศาสตร์จริง
  • เบอร์มือถือ: ในหลายประเทศไม่ผูกกับพื้นที่ตั้งแต่แรก
  • เบอร์ที่โอนย้ายค่าย: คงหมายเลขเดิมไว้ในขณะที่ผู้ใช้ย้ายจังหวัด
  • เบอร์อินเทอร์เน็ตและเบอร์เสมือน: ไม่ผูกกับที่ตั้งทางกายภาพเลย
  • ความยาวของหมายเลข: ต่างกันในแต่ละประเทศจนการแยกส่วนด้วยตำแหน่งคงที่ใช้ไม่ได้

หมายเลขโอนย้ายค่ายส่งผลอย่างไร?

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

สำหรับผู้ที่วิเคราะห์ข้อมูล ผลคือการจับคู่ระหว่างรหัสนำหน้ากับพื้นที่กลายเป็นเพียงค่าประมาณที่อาจผิดได้เสมอ และไม่มีการแจ้งล่วงหน้าว่าหมายเลขใดถูกโอนย้ายไปแล้ว การตรวจสอบกับฐานข้อมูลการโอนย้ายเป็นบริการที่ต้องอาศัยผู้ให้บริการภายนอกและไม่ได้ครอบคลุมทุกประเทศ

ผลกระทบต่อการออกแบบระบบคือ เราไม่ควรใช้รหัสนำหน้าเพื่อตัดสินว่าข้อมูลที่ผู้ใช้กรอกสอดคล้องกันหรือไม่ การใช้เพื่อตั้งค่าที่แสดงผลเริ่มต้นนั้นยอมรับได้ แต่การใช้เพื่อปฏิเสธนั้นไม่ควรทำ

วิธีคิดที่ปลอดภัยกว่าคือมองหมายเลขโทรศัพท์เป็นช่องข้อมูลที่ต้องตรวจรูปแบบเท่านั้น ส่วนความสอดคล้องกับที่อยู่เป็นเพียงสัญญาณอ่อนที่ใช้ประกอบการวิเคราะห์ ไม่ใช่เกณฑ์ตัดสิน

ต้องตรวจรูปแบบเบอร์โทรศัพท์อย่างไร?

เริ่มจากแยกรหัสประเทศออกจากหมายเลขภายในก่อน เพราะรหัสประเทศมีความยาวไม่เท่ากัน ระบบต้องรู้ว่ารหัสประเทศของแต่ละประเทศยาวเท่าใด ไม่ใช่ตัดสองหลักแรกเสมอ การตัดผิดจะทำให้หมายเลขที่เหลือผิดไปทั้งหมด

จากนั้นตรวจว่าจำนวนหลักของหมายเลขภายในอยู่ในช่วงที่ประเทศนั้นใช้ ทั้งนี้แต่ละประเทศอาจมีหลายช่วงสำหรับเบอร์ประเภทต่าง ๆ เช่นเบอร์บ้าน เบอร์มือถือ และเบอร์บริการ ซึ่งมีจำนวนหลักหรือขึ้นต้นด้วยเลขที่ต่างกัน

เรื่องที่ต้องระวังคือช่องว่าง เครื่องหมายขีดกลาง และวงเล็บที่ผู้ใช้ติดมาโดยธรรมชาติ ระบบควรยอมรับสัญลักษณ์เหล่านี้ในขั้นตอนกรอก แล้วเก็บค่าที่ทำความสะอาดแล้วในคอลัมน์แยก เพื่อให้การเปรียบเทียบในภายหลังไม่ถูกรบกวนด้วยรูปแบบการพิมพ์

อีกเรื่องที่เกี่ยวกับข้อมูลทดสอบโดยตรงคือ หมายเลขที่สร้างขึ้นเพื่อการทดสอบต้องไม่ถูกนำไปใช้จริง เครื่องมือสร้างข้อมูลทดสอบควรสร้างหมายเลขที่อยู่ในรูปแบบถูกต้องแต่ไม่ใช่หมายเลขที่ให้บริการอยู่ แนวคิดนี้สอดคล้องกับบทความข้อมูลที่อยู่ในชุดทดสอบ ที่อธิบายว่าชุดข้อมูลทดสอบที่ดีต้องแยกจากโลกจริงอย่างชัดเจน

ระบบควรใช้เบอร์โทรศัพท์ตรวจที่อยู่หรือไม่?

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

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

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

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

ประเทศต่างกันอย่างไรในเรื่องนี้?

ความต่างข้อแรกคือความยาวของรหัสประเทศ ซึ่งมีตั้งแต่หนึ่งถึงสามหลัก และบางประเทศมีรหัสที่ใช้ร่วมกันสำหรับหลายพื้นที่

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

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

ความต่างข้อที่สี่คือช่วงเวลาที่ระบบโทรศัพท์ถูกพัฒนา ประเทศที่สร้างโครงข่ายใหม่ทั้งหมดในยุคดิจิทัลอาจไม่เคยมีระบบรหัสพื้นที่แบบดั้งเดิมเลย ทำให้การคาดหวังว่าจะมีรหัสนำหน้าบอกพื้นที่นั้นไม่สอดคล้องกับความจริงตั้งแต่ต้น

สำหรับนักพัฒนา: ออกแบบช่องเบอร์โทรศัพท์ให้ปลอดภัย

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

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

ข้อที่สามคือกำหนดช่วงจำนวนหลักต่อประเทศไว้ในตารางเดียว และทดสอบว่าหมายเลขที่สั้นที่สุดและยาวที่สุดที่อนุญาตผ่านได้จริง

ข้อที่สี่คือทดสอบหมายเลขที่มีเลขศูนย์นำหน้า ซึ่งเป็นจุดที่ระบบที่เก็บเป็นตัวเลขจะทำข้อมูลเสียหาย เช่นเดียวกับกรณีของรหัสไปรษณีย์ที่อธิบายไว้ในบทความรูปแบบรหัสไปรษณีย์ของแต่ละประเทศ

ข้อที่ห้าคือทดสอบการแสดงผลของหมายเลขในภาษาที่เขียนจากขวาไปซ้ายและในตารางแคบ ๆ เพราะหมายเลขยาวที่ไม่มีช่องว่างอาจล้นออกนอกกรอบและถูกตัดจนอ่านผิด

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

ก้าวต่อไป

ตรวจว่าระบบของคุณเก็บหมายเลขโทรศัพท์ไว้เป็นข้อความหรือเป็นตัวเลข ถ้าเป็นตัวเลข ให้เปลี่ยนเป็นข้อความก่อนที่ข้อมูลที่มีเลขศูนย์นำหน้าจะเสียหาย และตรวจว่ารหัสประเทศถูกแยกออกจากหมายเลขภายในหรือยัง

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

อ่านต่อ

บทความเกี่ยวกับ เครื่องมือสร้างที่อยู่ปลอม

บทความเกี่ยวกับ เครื่องมือสร้างที่อยู่ปลอม

รายการนี้แสดงเฉพาะบทความในหัวข้อของหน้านี้