איך להוציא DOMAIN מתוך URL - עמוד 2 - תכנות - HWzone פורומים
עבור לתוכן
  • צור חשבון

איך להוציא DOMAIN מתוך URL


liiight

Recommended Posts

בסוף עשינו את זה עם מחרוזות חיפוש לTLDS מוכרים. זה עובד מהר, אז זה בסדר לבינתיים. אם למישהו יהיה רעיון אבל, לא להתבייש :)

תודה לכולם.

מצטער, אבל אין שום פתרון אפשרי אחר. מעבר ל- TLD, לכל רשם יש מדיניות שונה. בארץ, למשל, ישנו מספר קטן של 2nd level domains בעלי שתיים עד ארבעה תווים והדומיין שתרשום חייב להיות ב- 3rd level. הרשם הרוסי לעומת זאת, מאפשר רישום דומיינים גם ב- 2nd level. כלומר אתה יכול לרשום דומיין בשם xyz.ru, אבל לא תוכל לרשום דומיים בשם xyz.il - תצטרך לרשום xyz.co.il או xyz.net.il או כל דומיין 2nd level אחר ש- ISOC-IL מנהלים.

בלי לדעת מה הכללים של כל רשם, לא תוכל לדעת איפה לעצור. רשימת ה- TLD לא מספיקה, אתה צריך גם רשימת ה- 2nd level עבור רשמים שמאפשרים או מחייבים אותה.

אגב, מה אתם עושים רק עם הדומיין? למטרות ספציפיות יתכן שישנם קיצורי דרך. ומה אתם עושים במקרה שהדומיין מורכב יותר, למשל aaa.bbb.ccc.ddd.com? צריכים רק את ddd.com, את bbb.ccc.ddd.com או את כל הטררם?

אולי אני קצת איטי אבל אני לא מבין מה הבעיה פה, Zelig צדק לגבי זה שטכנית WWW זה לא חלק מהדומיין.

WWW זה השם של השרת (לרוב זה ה CNAME שלו ולא השם ה"אמיתי שלו ).

זה בהחלט חלק מהדומיין.

קישור לתוכן
שתף באתרים אחרים

ואם זה:

cs.colman.ac.il?

הרי אנחנו לא מעוניינים בתת הדומיינים. הבעיה היא שאתה לא יכול להבדיל בין הדומיינים לבין הסיומות(.com וכו) אם אין לך רשימה.

מה קורה אם יש את האתר www.com?

אתה צודק, לא חשבתי על זה...

זה בהחלט חלק מהדומיין.

חשבתי על זה וטכנית שנינו צודקים. קח לדוגמה את הכתובת www.google.com . אפשר לקרוא את זה ככה:

www נמצא בדומיין שנקרא שהוא תת דומיין של com . עכשיו WWW זה בדרך כלל CNAME לשרת WEB של

הדומיין שבו הוא נמצא. אבל באותה קלות הוא יכול להיות תת דומיין של , עד כמה שאני מבין אין לנו דרך לדעת את זה

עד שה query שלנו מגיעה לשרת DNS של . ההסבר שנתתי היא קצת מבלבל אבל אם זה יעזור לך להבין תחליף את WWW

ב host1 לדוגמה.

עדין ה host name הוא טכנית לא חלק מהדומיין.

קישור לתוכן
שתף באתרים אחרים

לא נכון. www.google.com מצביע על אתר, נכון, אבל מה עם www.www.google.com? כנראה שאין דבר כזה, אבל אין שום דבר שמונע מגוגל ליצור דומיין כזה מחר. עכשיו מה זה www.google.com? הוא גם מצביע על אתר וגם מהווה דומיין שתחתיו יש סאב-דומיינים. כל מה שאפשר לרשום תחתיו סאב-דומיין הוא דומיין.

זו שאלה של הגדרה. האם אתה מתכוון שדומיין הוא מה שיש לו zone file? כי לא צריך zone file בשביל סאב דומיין.

קישור לתוכן
שתף באתרים אחרים

לא נכון. www.google.com מצביע על אתר, נכון, אבל מה עם www.www.google.com? כנראה שאין דבר כזה, אבל אין שום דבר שמונע מגוגל ליצור דומיין כזה מחר.

נכון מאוד, זה מה שניסיתי להסביר בתגובה הקודמת שלי. אגב אם אתה יוצר תת דומיין כזה ה record שנקרא WWW עובר אוטומטית

לתת דומיין ומקבל את השם של התת דומיין.

עכשיו מה זה www.google.com? הוא גם מצביע על אתר וגם מהווה דומיין שתחתיו יש סאב-דומיינים. כל מה שאפשר לרשום תחתיו סאב-דומיין הוא דומיין.

זו שאלה של הגדרה. האם אתה מתכוון שדומיין הוא מה שיש לו zone file? כי לא צריך zone file בשביל סאב דומיין.

אתה צודק ולא סותר את מה שאמרתי. הסיבה שאתה צודק היא ש host יכול לקבל את השם של הדומיין, אבל יש מספר דרכים לדעת

אם זה host/CNAME וכו' או תת דומיין. אחת מהדרכים שכרגע עולות לי בראש זה לעשות query ל NS של מה שאנחנו חושדים שהוא התת דומיין.

אם אנחנו מקבלים שיגאה זה לא תת דומיין.

אם לא הבנת את ההסבר הדי גרוע שלי אני אגדים לך את זה על השרת DNS בבית שלי.

ועוד דבר: לדומיין או תת דומיין לא חייב להיות zone file עצמאי הוא יכול גם להתקיים באותו קובץ עם הדומיין מעליו, אבל עד כמה

שאני יודע הוא חייב להתקיים בקובץ מסויים.

קישור לתוכן
שתף באתרים אחרים

אז זהו, אפשר ליצור רשומה בשם www.www.google.com גם בלי שתהיה רשומת ns ל- www.google.com.

חפש FQDN ותראה ש- com הוא דומיין, google.com הוא דומיין ו- www.google.com הוא דומיין. הראשון הוא 1st level domain (או Top Level Domain), השני הוא 2nd level domain והשלישי 3rd level domain. דומיין יכול להצביע על שרת, על כמה שרתים או על שום דבר.

קישור לתוכן
שתף באתרים אחרים

דומיין יכול להצביע על שרת, על כמה שרתים או על שום דבר.

דומיין לא מצביע על כלום, הוא פשוט מסמן איפה ב"שרשרת" ה HOST נמצא. ה record הוא שמצביע על שרת או מספר שרתים

והוא יכול לקבל את השם של הדומיין. הנה תצלום מסך של השרת DNS בבית שלי:

homelocalzr5.gif

כמו שאתה רואה יש לי ZONE אחת בשם home.local , דבר ראשון תתעלם מכל התת דומאיינים זה קשור ל AD.

דבר שני שים לב לשלושת ה records הראשונים (ה SOA ה NS וה A ) כולם מצביעים על srv-1 שנמצא ב 192.168.0.250 .

וליד כולם כתוב "same as parent folder" זאת אומרת שהשם של ה record הוא בדיוק השם של הדומיין.

במילים אחרות אם אני עושה nslookup ל home.local אני יקבל אחד משלושת ה records האלה, תלוי בסוג של ה query שאני שולח.

הנה פלט של nslookup שעשיתי כל הקלט בא אחרי הסימן"<" כל השאר זה הפלט.

C:\Documents and Settings\Vitali\Desktop>nslookup
Default Server: srv-1.home.local
Address: 192.168.0.250

> set type=a
> home.local
Server: srv-1.home.local
Address: 192.168.0.250

Name: home.local
Address: 192.168.0.250

> set type=ns
> home.local
Server: srv-1.home.local
Address: 192.168.0.250

home.local nameserver = srv-1.home.local
srv-1.home.local address = 192.168.0.250
> set type=soa
> home.local
Server: srv-1.home.local
Address: 192.168.0.250

home.local
primary name server = srv-1.home.local
responsible mail addr = hostmaster.home.local
serial = 44
refresh = 900 (15 mins)
retry = 600 (10 mins)
expire = 86400 (1 day)
default TTL = 3600 (1 hour)
srv-1.home.local address = 192.168.0.250
> set type=any
> home.local
Server: srv-1.home.local
Address: 192.168.0.250

home.local address = 192.168.0.250
home.local nameserver = srv-1.home.local
home.local
primary name server = srv-1.home.local
responsible mail addr = hostmaster.home.local
serial = 44
refresh = 900 (15 mins)
retry = 600 (10 mins)
expire = 86400 (1 day)
default TTL = 3600 (1 hour)
srv-1.home.local address = 192.168.0.250
>exit

עכשיו אם אני יוצר תת דומיין שנקרא WWW ומשאיר אותו ריק, אני יקבל שגיאה כשאני יעשה nslookup.

הנה הפלט:

> set type=any
> [url]www.home.local[/url]
Server: srv-1.home.local
Address: 192.168.0.250

*** srv-1.home.local can't find [url]www.home.local:[/url] Non-existent domain
>

הדומיין קיים פשוט אין בו כלום.

עכשיו אם אני יוסיף record לדומיין ויקרא לו לדוגמה abc שים לב מה יקרה:

> set type=any
> abc.[url]www.home.local[/url]
Server: srv-1.home.local
Address: 192.168.0.250

abc.[url]www.home.local[/url] internet address = 111.111.111.111
>
>
>
> [url]www.home.local[/url]
Server: srv-1.home.local
Address: 192.168.0.250

*** srv-1.home.local can't find [url]www.home.local:[/url] Non-existent domain
>

הוא מחזיר לי את ה IP של abc אבל מחזיר שגיאה ל www.home.local , הסיבה כמובן אין שום record שמצביע על הדומיין

ככה התת דומיין נראה:

wwwqj6.gif

ועכשיו סתם בשביל הכיף אם אני יזרוק הרבה A records ויותן להם את השם של הדומיין:

www2yr3.gif

ועכשיו אני יבדוק את זה עם nslookup והנה הפלט:

> set type=any
> [url]www.home.local[/url]
Server: srv-1.home.local
Address: 192.168.0.250

[url]www.home.local[/url] internet address = 222.222.222.222
[url]www.home.local[/url] internet address = 123.123.123.123
[url]www.home.local[/url] internet address = 212.122.122.255
[url]www.home.local[/url] internet address = 126.233.231.111
[url]www.home.local[/url] internet address = 12.112.12.12
>

עכשיו אתה מבין למה אמרתי ששנינו צודקים?

קישור לתוכן
שתף באתרים אחרים

אני לא מנסה להרשים אותך בכלום וחבל שאתה חושב ככה, אני מנסה להראות לך משהו מאוד מאוד פשוט.

לא יצרתי zone file השתמשתי באחד קיים והתת דומיין לא היה ריק יש לך תצלום מסך (השני) שמראה את זה ופלט

של nslookup שמדגים איך קיבלתי את ה recored של abc.www.home.local .

זה יהיה נחמד אם לשם שינוי תקרא את התגובות שלי...

לא צריך SOA recored אם אני משתמש באותו קובץ על אותו שרת, וגם אם היה לי SOA זה לא משנה,

SOA זה סוג של recored והוא לא דומיין , זה מחזק את הנקודה שלי .

כל מה שאני מנסה להגיד הוא: שדומיין הוא סך הכל namespace ה recored הוא זה שמצביע על דברים.

ול recored הרבה פעמים יש את השם של הדומיין. בגלל זה www.google.com יכול להיות host וגם

דומיין. והוא יכול להיות host או דומיין.

קישור לתוכן
שתף באתרים אחרים

אני מבין שעוד לא בדקת מה זה FQDN.

בכל מקרה, אני בהחלט קורא את ההודעות שלך:

עכשיו אם אני יוצר תת דומיין שנקרא WWW ומשאיר אותו ריק, אני יקבל שגיאה כשאני יעשה nslookup.

ההדגשה שלי. רואה? השארת את ה- zone file ריק. בלי SOA, אין ל- name server שלך מה להחזיר לשאילתא ולכן קיבלת הודעת שגיאה. אני מתפלא שזה לא מובן מאליו - אם קיבלת הודעת שגיאה, ברור שעשית משהו לא בסדר.

לא צריך SOA recored אם אני משתמש באותו קובץ על אותו שרת

אולי ב- name server של מיקרוסופט. עברו תשע שנים מהפעם האחרונה שיצא לי לגעת באחד כזה, לך תדע. אבל (אי) השמירה של מיקרוסופט על תקנים ידועה ומפורסמת. ראה, למשל, את RFC 2181: clarifications to the dns specification -

6.1. Zone authority

The authoritative servers for a zone are enumerated in the NS records

for the of the zone, which, along with a Start of Authority

(SOA) record are the mandatory records in every zone.

דומיין תמיד מצביע על משהו. המשהו הזה לא חייב להיות שרת. דומיין יכול, למשל, להצביע על ה- name servers שלו וזהו. אתה יכול לרשום את הדומיין בדפדפן ולא לקבל כלום, אבל דומיין תקין תמיד יחזיר משהו לשאילתת type=any.

קישור לתוכן
שתף באתרים אחרים

לא בדקתי כי אני יודע מה זה FQDN .

בהתחלה יצרתי אותו ריק אבל אז הוספתי לשם A recored שנקרא abc, ועדיין אותו דבר. שים לב מה קרה

בפעם השלישית שהרצתי nslookup. הצלחתי להוציא את abc אבל עדין www.home.local החזיר שגיאה.

לגבי הציטוט מ RFC 2181. תודה על המידע, לא ידעתי את זה עד עכשיו, תמיד חשבתי שאם הם באותו קובץ לא חובה SOA ,

כנראה MS באמת "שברו" כמה סטנדרטים כי מה שהראתי לך הוא בניגוד מוחלט ל RFC .

יכול להיות גם שזה בגלל ש זה active directory integrated zone , אני יבדוק את זה עוד מעט.

עכשיו, אחרי שיצאתי מנקודת הנחה שדומיין חייב להכיל SOA ,חשבתי על קצת:

ועדיין הדומיין הוא סך הכל namespace ה recored הוא זה שמצביע על דברים, פשוט תמיד יהיה שם record

עם השם של הדומיין (אלא אם כן אתה משתמש ב DNS של MS ), ולכן אתה צודק לגבי זה ש query לדומיין חייב

להצביע על משהו.

קישור לתוכן
שתף באתרים אחרים

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

×
  • צור חדש...