PDA

View Full Version : به دست آوردن آی پی کلاینت در یک اتصال



esmit61
یک شنبه 06 مرداد 1392, 13:40 عصر
سلام
درحال نوشتن یک پروکسی ساده شخصی سرور با استفاده از TIdHttpProxyServer Indy 10.5.5 هستم
یه سوال دارم. چجوری میتونم آی پی کلاینتی که به این سرور وصل میشه رو به دست بیارم؟
هر خاصیتی رو تست میکنم جواب نمیده :ناراحت:
ممنونم

یوسف زالی
یک شنبه 06 مرداد 1392, 14:05 عصر
سلام.
می تونید در رویداد اتصال از این استفاده کنید:


AContext.Connection.Socket.Binding.PeerIP

esmit61
یک شنبه 06 مرداد 1392, 14:40 عصر
خیلی ممنون از جوابتون. درست شد ولی یه مشکل دیگه وجود داره:
من بنابه دلایلی درخواست اینترنتم رو از سیستم 1 میفرستم روی پروکسی سرور 2 (که خودم ننتوشتم) و از پروکسی سرور 2میفرستم روی پروکسی سرور 3 (که خودم نوشتم) ولی وقتی توی پ.س 3 دستور شما رو میزنم، به جای اینکه آی پی سیستم 1 رو برگردونه، آی پی پ.س 2 رو برمیگردونه که خوب البته منطقی هم هست چون اتصالش به اون بوده. ولی میخوام ببینم روشی وجود نداره که من بتونم بفهمم که آی پی اولیه چی بوده؟ یعنی مثلاً یه جایی توی Header ثابت بمونه و من بتونم ببینمش
شرمنده اگه یه کم توضیحش پیچیده شد

یوسف زالی
یک شنبه 06 مرداد 1392, 16:04 عصر
می تونید آی پی رو در هنگام ارسال پکت ها در قالب یک هدر ارسال کنید و در سیستم مقصدتون اون رو از هدر خارج کنید.
البته اگر دسترسی اصلاح PX1 رو داشته باشید که اونجا برنامه رو اصلاح می کنید ولی با توجه به توضیحتون فکر می کنم راه ساده تری نداشته باشید.

esmit61
یک شنبه 06 مرداد 1392, 16:26 عصر
من توی میکروتیک یه پروکسی سرور راه اندازی کردم و تو خودش دوباره یه پَرنت پروکسی سرور تعریف کردم به برنامه خودم
ولی با دستور شما، همیشه آی پی میکروتیک به من نشون داده میشه
میکروتیک هم قابلیت دستکاری هدر رو به من نمیده :ناراحت:
روش دیگه ای به ذهنتون نمیرسه؟
ممنون از پیگیریت

یوسف زالی
یک شنبه 06 مرداد 1392, 16:42 عصر
منظورم از هدر همیشه اون هدر استاندارد نیست. می تونید در قالب خود پکتی که دارید می فرستید، آی پی رو هم بدید. مثلا اولین 8 بایت هر پکتی رو اختصاص بدید به آی پی کلاینتتون.
این پکت در سرور اول فقط پاس داده می شه به دومی، سرور دوم هم وقتی داره پکت رو می خونه از رو هشت بایت اولش می فهمه آی پی اولیه چی بوده.
همین!

esmit61
یک شنبه 06 مرداد 1392, 16:57 عصر
آخه کاربرها توی مرورگر خودشون آی پی میکروتیک رو به عنوان پروکسی سرور ست می کنند. نمیدونم چجوری هدرها رو دستکاری کنم. چون توسط مرورگر به میکروتیک ارسال میشن

esmit61
یک شنبه 06 مرداد 1392, 17:41 عصر
الان از اینجا (http://hyber.org/logger_mod.yaws)دیدم توی پکت هدر یه فیلدی میره به اسم X-Forwarded-For که دقیقاً پاسخ اون سوال منه. تست کردم جواب داد. دم طراحانش گرم
دم شما هم گرم که سرنخ اولیه رو به من دادید.