การวิเคราะห์และประมวลผลชื่อโดเมนระดับบนสุดแบบสากลที่มีการใช้งานจริง (Parsing Active IDN TLDs)
รายชื่อของชื่อโดเมนระดับบนสุดแบบสากลที่มีการใช้งานอยู่ (Active Internationalized Domain Name Top-Level Domains: IDN TLDs) สามารถเข้าถึงได้จากเว็บไซต์อย่างเป็นทางการของ Internet Assigned Numbers Authority (IANA) ที่
https://data.iana.org/TLD/tlds-alpha-by-domain.txt ณ วันที่ 27 พฤศจิกายน ค.ศ. 2023 รายการดังกล่าวประกอบด้วยชื่อโดเมนระดับบนสุดทั้งหมด 1,589 รายการ โดยในจำนวนนี้มี 243 รายการ ที่ถูกจัดเป็น IDN TLDs ในการวิเคราะห์และสกัดข้อมูลชื่อโดเมนระดับบนสุดแบบสากลที่มีการใช้งานจริง (IDN TLDs) จาก URL ที่ระบุ สามารถดำเนินการตามขั้นตอนต่อไปนี้:
- เข้าถึง URL ที่กำหนด และดึงข้อมูลเนื้อหาจากหน้าเว็บดังกล่าว
- ประมวลผลข้อมูลที่ได้ในลักษณะทีละบรรทัด (line by line)
- ระบุชื่อโดเมนระดับบนสุดแบบสากลที่มีการใช้งานจริง (Active IDN TLDs) โดยพิจารณาจากบรรทัดที่มีการกำหนดประเภท เช่น “generic” หรือ “country-code”
- จัดเก็บชื่อ IDN TLDs ที่ตรวจพบลงในรายการ (list) หรือโครงสร้างข้อมูลอื่นที่เหมาะสม เพื่อใช้ในการประมวลผลหรือวิเคราะห์เพิ่มเติมต่อไป
ตัวอย่างที่ 9: การวิเคราะห์ไฟล์ https://data.iana.org/TLD/tlds-alpha-by-domain.txt ด้วยภาษา Python
import requests
import re
# Download the IDN TLDs list
url = “https://data.iana.org/TLD/tlds-alpha-by-domain.txt”
try:
response = requests.get(url)
if response.status_code == 200:
content = response.text
# Parse the HTML content
idn_tlds = re.findall(r”XN–[A-Z0-9\-]+”, content)
for tld in idn_tlds:
print(tld)
else:
print(f”Failed to retrieve data. Status code: {response.status_code}”)
except requests.exceptions.RequestException as e:
print(f”An error occurred: {e}”)
สคริปต์นี้ทำหน้าที่ดึงรายชื่อชื่อโดเมนระดับบนสุด (Top-Level Domains: TLDs) จากเว็บไซต์ของ IANA โดยการส่งคำขอแบบ HTTP GET ไปยัง URL https://data.iana.org/TLD/tlds-alpha-by-domain.txt จากนั้น เนื้อหาที่ได้รับจะถูกประมวลผลด้วย Regular Expression โดยใช้คำสั่ง re.findall(r”XN–[A-Z0-9\-]+”, content) เพื่อสกัดบรรทัดที่เป็นชื่อ IDN TLDs ซึ่งสามารถสังเกตได้จากคำนำหน้า “XN–” ตามด้วยตัวอักษรพิมพ์ใหญ่ ตัวเลข และเครื่องหมายขีดกลาง ชื่อ IDN TLDs ที่ตรวจพบจะถูกจัดเก็บไว้ในตัวแปร idn_tlds ซึ่งเป็นรายการ (list) และในขั้นตอนสุดท้ายจะมีการแสดงผลรายชื่อ TLDs ที่มีการใช้งานจริง ซึ่งถูกจัดเก็บไว้ในรายการดังกล่าวออกทางหน้าจอ
ตัวอย่างที่ 10: การวิเคราะห์ไฟล์ https://data.iana.org/TLD/tlds-alpha-by-domain.txt ด้วยภาษา Java
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class IDNParserExample {
public static void main(String[] args) {
String url = “https://data.iana.org/TLD/tlds-alpha-by-domain.txt”;
try {
URL obj = new URL(url);
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
// Set request method
con.setRequestMethod(“GET”);
int responseCode = con.getResponseCode();
if (responseCode == HttpURLConnection.HTTP_OK) {
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuilder content = new StringBuilder();
while ((inputLine = in.readLine()) != null) {
content.append(inputLine);
content.append(System.lineSeparator());
}
in.close();
String pattern = “XN–[A-Z0-9\\-]+”;
Matcher matcher = Pattern.compile(pattern).matcher(content.toString());
while (matcher.find()) {
String tld = matcher.group();
System.out.println(tld);
}
} else {
System.out.println(“Failed to retrieve data. Status code: ” + responseCode);
}
} catch (IOException e) {
System.out.println(“An error occurred: ” + e.getMessage());
}
}
}
