יש לי כמה שאלות:

galgal21

New member
יש לי כמה שאלות:

1. אני רוצה להתקשר מתוכנת VB אחת לתוכנה אחרת (שנמצאת במחשב אחר). איך אוכל לדעת את כתובת ה-IP שלו? כתובת ה-IP שלו יכולה להשתנות במהלך הזמן (אם הוא מתנתק ומתחבר לאינטרנט). האם יש איזו פקודה ב-VB שתוכל לתת לי את כתובת ה-IP שלו עכשיו (על סמך פרמטר אחר שלו שקבוע תמיד ולא משתנה)? 2. כתובת ה-IP שלי האם היא משתנה מסוג מחרוזת? 3. ה-PORT שלי וה-PORT של התהליך השני -- האם הם INTEGER ? BYTE? או STRING? (או משהו אחר).
 

MaD-d0g

New member
תגובה

כן.. כתובת IP היא String. פורט ? לדעתי ה Winsock מקבל את זה בתור Integer. הדרך הכי טוב לקבל את כתובת ה IP האינטרנטית של המחשב היא ליצור חיבור לאתר WhatIsMyIP.com ולפרסס אותו.
 

galgal21

New member
דרך האתר

WhatIsMyPort אוכל לקבל כתובת IP של מחשב אחר (לא של המחשב שאני עובד עליו)? ואוכל לפנות לאתר זה בתוך תוכנת Visual basic ?
 

MaD-d0g

New member
חחח התבלבלת קצת ../images/Emo13.gif

יש לך הבנה בסיסית בתחום התקשורת ? (מה זה IP, מה זה פורט.. מה יחודי ומה לא ?) לא. האתר נותן לך את ה IP שלך וזהו
 

galgal21

New member
לא התבלבלתי

(אני פשוט לא הכרתי היטב את האתר WhatIsMyPort). הנקודה היא שאני צריך להתקשר ממחשב אחד לשני. ככל הידוע לי כתובת IP לא חייבת להיות יחודית למחשב מסוים. כאשר מחשב מתחבר לרשת האינטרנט, מתנתק ממנה ומתחבר פעם נוספת הוא לא בטוח שהוא יקבל את אותו IP שהיה לו בפעם הראשונה. לכן אני צריך משהו שיזהה את אותו מחשב באופן יחודי וכל פעם שאני רוצה להתקשר אילו התוכנה תנסה להשיג את כתובת ה-IP הנוכחית דרך אותו פרמטר יחודי ורק אחר-כך להתקשר למחשב הזה (אולי שם המחשב או Mac address שלו + IP של ה-Router שלו).
 

galgal21

New member
לא התבלבלתי

(אני פשוט לא הכרתי היטב את האתר WhatIsMyPort). הנקודה היא שאני צריך להתקשר ממחשב אחד לשני. ככל הידוע לי כתובת IP לא חייבת להיות יחודית למחשב מסוים. כאשר מחשב מתחבר לרשת האינטרנט, מתנתק ממנה ומתחבר פעם נוספת הוא לא בטוח שהוא יקבל את אותו IP שהיה לו בפעם הראשונה. לכן אני צריך משהו שיזהה את אותו מחשב באופן יחודי וכל פעם שאני רוצה להתקשר אילו התוכנה תנסה להשיג את כתובת ה-IP הנוכחית דרך אותו פרמטר יחודי ורק אחר-כך להתקשר למחשב הזה (אולי שם המחשב או Mac address שלו + IP של ה-Router שלו).
 

MaD-d0g

New member
WhatIsMyIP ולא WhatIsMyPort

אתה קצת מתבלבל... כתובת IP חייבת להיות ייחודית למחשב מסוים.. אבל היא לא חייבת להיות קבועה אם עכשיו ה IP שלי הוא 66.249.93.147 זה אומר שאני היחיד בעולם שיש לו את הכתובת הזאת ברגע זה. אבל אם אני אתנתק ואתחבר אני עלול לקבל כתובת אחרת... אבל גם היא תהיה רק שלי באותו רגע. IP של ראוטר לא קשור.. ה IP של הראוטר זה למעשה ה IP של המחשב אם יש לך מחשב שמחובר עם מודם לאינטרנט.. אז למחשב יש כתובת IP של האינטרנט וזהו. אם יש לך מחשב שמחובר לראוטר שהוא מתחבר לאינטרנט אז יש לך רשת פנימית. למחשב יש כתובת פנימית שאי אפשר להגיע מבחוץ אליה (מה שנקרא NAT). לראוטר יש את ה IP האינטרנטי והוא מבצע מיפוי של שיחות TCP נכנסות ולאיזה מחשב המידע יועבר. כתובת MAC לא קשור בדיוק.. כי היא משמשת למיתוג ולא לניתוב. זה שייך לשכבה השניה. בתאוריה לכל מחשב ולכל רכיב רשת יש כתובת MAC יחודית משלו.. אבל אי אפשר לפנות אליה באינטרנט.. אלא רק ברשת מקומית.. אם יש לך עוד שאלות אתה מוזמן לשאול
 

galgal21

New member
שאלה ראשונה:

אני רוצה להתקשר למחשב מסוים. המחשב הזה מתחבר לאינטרנט ומתנתק ממנה לסרוגין. אני לא יכול בכל פעם שהוא מתחבר לאינטרנט להרים אילו טלפון (או שהוא ירים אלי טלפון) ולשאול אותו על כתובת ה-IP שלו. אני צריך לקבל איזשהו זיהוי יחיד שלו (שלא משתנה כאשר הוא מתחבר , מתנתק ומתחבר שוב לרשת). אם אקבל ממנו את מספר ה-IP שלו ברגע מסוים (שזה מספר מיוחד לו ברגע זה) הרי ברגע שהוא יתנתק מהרשת ויתחבר אליה שוב, הוא יכול לקבל IP אחר ןאז לא אוכל לפנות אילו.
 

MaD-d0g

New member
נכון

אתה יכול להשתמש בתוכנות מיוחדות... שנותנות למחשב DNS מיוחד. אני חושב שאחת מהן זו DynDns. צריך להרשם לאתר ולהוריד תוכנה. התוכנה צריכה לפעול על המחשב באופן קבוע.. והיא יוצרת כתובת DNS בסגנון של UserName.dyndns.com ככה תוכל לגשת לאותו מחשב באופן קבוע כשהוא מריץ את התוכנה. זהו פתרון די מלאכותי. אי אפשר בצורה "רגילה" להזהות מחשב באינטרנט בצורה חד ערכית ולעקוב אחריו... פשוט לא אפשרי
 

galgal21

New member
שאלה שניה:

כנראה טעיתי שאמרתי את המלה ROUTER. לפי מיטב הבנתי האינטרנט חייבת להיות מערכת היררכית כלומר יש מחשב שנמצא בהיררכיה מעל למחשב שאילו אני רוצה להתקשר. נקרא רגע למחשב שאילו אני רוצה להתקשר "מחשב היעד". נקרא רגע למחשב שמעליו בהיררכיה "מחשב על". לפי מיטב הבנתי "מחשב על" יחלק כתובת אינטרנט ל-"מחשב היעד" ברגע ש-"מחשב היעד" ירצה להכנס לרשת. כמו כן אני מניח של-"מחשב העל" יש כתובת IP קבועה לתמיד. רציתי לדעת האם אפשר לגלות את ה-IP הנוכחי של "מחשב היעד" כך: 1. על-ידי פניה ל-"מחשב העל" שלו עם שם "מחשב היעד" או כל פרמטר יחודי אחד של "מחשב היעד" (פרמטר שלא משתנה כאשר "מחשב היעד" מתחבר ומתנתק מהרשת). 2. "מחשב העל" יחזיר לי את כתובת ה-IP הנוכחית (ברגע זה) של "מחשב היעד". תקן אותי בבקשה אם טעיתי בגישה.
 

MaD-d0g

New member
מההה ?

מחשב על ? SuperComputer ? אין כתובת קבועה... אולי אם יש לך חשבון בכבלים ואין לך חייגן אז יש לך כתובת שמשתנה לעיתים רחוקות... אבל היא לא מוגדרת כקבועה. אם אתה רוצה כתובת קבועה תיצור קשר עם הספק אינטרנט שלך ותשלם בערך עוד 100 ש"ח בחודש עבור Fix IP (אני לא זוכר מה התעריף בדיוק)
 

galgal21

New member
שאלה נוספת:

רציתי לדעת האם ה-NAT זוהי עבודה ברשת אינטרנט פנימית שלכל מחשב יש IP שלו שלא מוכר ברשת האינטרנט הכלל עולמית ? ורק למחשב אחד יש IP שמוכר ברשת האינטרנט הכלל עולמית והוא מנתב את ההורעות מהעולם החיצוני פנימה וההפך? האם NAT זוהי עדיין עבודה בשכבה השלישית?
 

MaD-d0g

New member
פחות או יותר זו ההודעה הראשונה שאתה צודקבה../images/Emo3.gif

NAT זה כשיש לך רשת פנימית וראוטר (נתב) לכל מחשב ברשת הפנימית יש כתובת IP פרטית (קבועה או לא קבועה עם DHCP). רק לראוטר יש לך כתובת IP אינטרנטית והוא זה שמנתב את ההודעות מהעולם החיצוני פנימה (עם חוקים מסוימים) וההפך. NAT זה אכן שכבה שלישית
 

טרמפיסט

New member
סדר בבלאגן

בכדי ליצור קשר עם מחשב הנושא כתובת חדשה בכל פעם אפשר פשוט לקבוע שרת מסויים באינטרנט בעל כתובת קבועה אליו תכתוב התוכנה לקובץ קבוע את הכתובת שלה. כך בכל אתחול של המחשב והפעלה מחדש של התוכנה תתקשר התוכנה לאותו שרת ותכתוב לאותו קובץ את כתובתה הנוכחית. התוכנה בצד שלך תפנה לאותו שרת, תוריד את הקובץ ותעיין ברשימת הכתובות הנמצאות בה ותנסה להתקשר אליהן. אם מדובר רק במחשב מרוחק אחד, הרי שהכתובת האחרונה היא הרלוונטית ביותר ואין שום בעיה. אם לא; תמיד אפשר לצרף לכתובת גם את התאריך והשעה ולמיין (נניח) את ה-10 האחרונים ולנסות לתקשר איתם. כתובת ה-IP כפי שכבר ענו לך מיוחסת ב-VB כמחרוזת לכל דבר, ה-Port לעומת זאת הוא משתנה מסוג Long. ערכי ה-Port יכולים להיות כל מספר בין 0 ל-65535, ומכיוון של-VB אין unsigned int, תופס פה טיפוס ה-Long את מקומו כהטיפוס הקטן ביותר המסוגל להכיל את הערכים הנ"ל.
 
למעלה