# Native Code > برنامه نویسی در Delphi > توسعه نرم افزارهای تحت شبکه >  پیدا کردن آدرس Client Ip Server

## ghasemshami

من اومدم تو برنامم برای اینکه Ip Client رو پیدا کنم از IdIPWatch1 استفاده می کنم اما Ip Local رو بر می گردونه و هر چه هم جستجو کردم به نتیجه خاصی نرسیدم

از دوستان بابت این همه کمک ممنونم

----------


## tdkhakpur

ببینید همان نتیجه ای که از IdIpWatch  میگیرید در حقیقت آدرس واقعی و همان ip هست که شما داخل اینترنت باهاش میچرخید ولی چون شما داده ها  را توسط ISP تحویل میگیرید باید عملیات چرخش را ISP برای شما انجام دهد نه خود شما.
حالا برای اینکه شما مستقیما با اینتر نت در ارتباط باشد ISP برای شما توسط DHCP یک IP  میدهد که این IP هرچند invalid ولی در حقیقت به عنوان ولید عمل میکند و شما باید از این طریق عملیات را انجام دهید.
توضیح مطالب راجع به چگونگی عملیات بحث گستردهای هست و میتوانید با مطالعه شبکه و پروتکلهای مربوطه دلیل این اعمال را جویا بشود.
بگذریم آنچه که حالا درد شما را درمان میکند این است که شما از ISP خود بخواهید که IP مشخص کننده کامپیوتر شما را به شما بدهد و یا میتوانید از Status کانکشن با راست کلیک و دیگر گزینه ها پیدا کنید..

----------


## ghasemshami

> بگذریم آنچه که حالا درد شما را درمان میکند این است که شما از ISP خود بخواهید که IP مشخص کننده کامپیوتر شما را به شما بدهد و یا میتوانید از Status کانکشن با راست کلیک و دیگر گزینه ها پیدا کنید..


همه اینهایی که شما گفتید رو می دونستم ولی من کاری که می خوام بکنم اینه که من در برنامه چت می خوام IP رو به دست بیارم و معلوم نیست توی چه کامپیوتری اجرا بشه

----------


## vcldeveloper

> من کاری که می خوام بکنم اینه که من در برنامه چت می خوام IP رو به دست بیارم و معلوم نیست توی چه کامپیوتری اجرا بشه


IP چی رو بدست بیارید؟ اگر منظور IP کلاینتی هست که به سرور وصل شده، خب IP کلاینت در زمان اتصال به سرور، به سرور ارسال میشه. شما می تونید همان موقع آن را جایی ثبت کنید، و بعد از آن، از طریق همین IP به کلاینت دسترسی داشته باشید.

----------


## tdkhakpur

> همه اینهایی که شما گفتید رو می دونستم ولی من کاری که می خوام بکنم اینه که من در برنامه چت می خوام IP رو به دست بیارم و معلوم نیست توی چه کامپیوتری اجرا بشه


شما نحوه برداشتان از IP اشتباهه ببینید از وقتی که اینترنت ایجاد شده هر موجودیتی برای خودش یک ip مخصوص به خود دارد زمان فعلی را در نظر نگیرید در آینده کامپیوتر شما پر از ip خواهد بود که حتی نخواهید دانست که داره هویت کدام سخت افزار را مشخص میکند. به هر حال شما اگر بخواهید هویت یکip  را مشخص کنید باید با سعی و خطا ip مورد نظرتان را پیدا کنید.
با اجرای برنامه زیر در داخل کد  یا command میتوانید ip را از داخل فایلی که ایجاد میشود بدست بیارید..
 
local_IP.txt //داخل این فایل می باشدIP

----------


## ghasemshami

دوست عزیز داخل نمونه برنامه ای که گذاشتید هم Local IP و هم Client Ip Address رو بر می گردونه ولی من نمی خوام فایل اضافی کنار برنامم باشه و دومین Ip رو که داخل فایل txt بر می گردونه رو میخوام که همون Client IP Address است.

اگه لطف کنید و این نمونه کد رو بذارید که Client IP Address رو برگردونه بدون هیچ فایل اضافه ممنون می شم

----------


## ghasemshami

آقای کشاورز میشه لطف کنید بفرمائید چطوری این کار رو بکنم و این رو هم بگم برنامم Local نیست و تحت اینترنت هستش

----------


## vcldeveloper

> آقای کشاورز میشه لطف کنید بفرمائید چطوری این کار رو بکنم و این رو هم بگم برنامم Local نیست و تحت اینترنت هستش


قبلا درباره اش توضیح دادم - همان تاپیکی که به گفته شما در کد نوشته شده سرور به همه کلاینت ها در داخل یک حلقه for پیام ارسال می کرد.

----------


## ghasemshami

آقای کشاورز در اون حلقه فقط دو تا آرایه بود که تو اون لیست کاربران بود

حالا کجای اون کد IP کلاینت ها ذخیره شده

چطوری به دست بیارمش

----------


## delphidark

دوست عزیز برای گرفتن IP کلاینت می تونی از شی Athread که در رویداد onconnect تعریف شده به شکل زیر استفاده کنی...

Athread.connection.socket.binding.peerip

که نتیجه یه رشته با محتوای آی پی کلاینت هست
البته اگه کلاینت از اینترنت share شده استفاده کنه (مثل بعضی از ارائه دهنده های دایل آپ) ip به دست اومده ولید نیست و ...

----------

