آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
مشکل عدم دسترسی خریداران پیشین به برخی آموزش ها برطرف شد
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

بدست آوردن ip کاربر در اولین اجرای برنامه

red_sky  9 سال پیش  9 سال پیش
0 0

سلام 

من میخوام وقتی که کاربر برای اولین بار برنامه را روی گوشی اجرا میکنه ip ش را بدست بیارم تا یکسری پردازش روی ip انجام بدم میشه راهنمایی کنید که چطور این ip را میشه بدست آورد؟

 برای این سوال 5 پاسخ وجود دارد.
پاسخ به سوال 
Programmer  9 سال پیش
0 0

خدمت شما.تست کنید و نتیجه رو اعلام کنید :

WifiManager wm = (WifiManager) getSystemService(WIFI_SERVICE);
String ip = Formatter.formatIpAddress(wm.getConnectionInfo().getIpAddress());
0 0
ممنون بابت جواب ولی روی امولیتور ip را فقط صفر نشون میده 0.0.0.0 روی گوشی خودم هم که ipیی که از مودم گرفتم نشون میده من ipاینترنتش را میخوام باز هم بابت پاسخگویی تون ممنونم (9 سال پیش)
0 0
لینک (9 سال پیش)
پاسخ به سوال 
0 0

public static String getIPAddress(boolean useIPv4) {
            try {
                List<NetworkInterface> interfaces = Collections.list(NetworkInterface.getNetworkInterfaces());
                for (NetworkInterface intf : interfaces) {
                    List<InetAddress> addrs = Collections.list(intf.getInetAddresses());
                    for (InetAddress addr : addrs) {
                        if (!addr.isLoopbackAddress()) {
                            String sAddr = addr.getHostAddress().toUpperCase();
                            boolean isIPv4 = InetAddressUtils.isIPv4Address(sAddr);
                            if (useIPv4) {
                                if (isIPv4)
                                    return sAddr;
                            } else {
                                if (!isIPv4) {
                                    int delim = sAddr.indexOf('%'); // drop ip6 port suffix
                                    return delim<0 ? sAddr : sAddr.substring(0, delim);
                                }
                            }
                        }
                    }
                }
            } catch (Exception e) {
    e.printStackTrace();
    }
            return "";
    }

این متد رو با مقدار بولین true صدا بزنید :

getIPAddress(true);

و  این مجوز ها رو هم به manifest اضافه کنید :

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

+1 0
ممنون بابت جواب ولی کدها در اولین خط در بلاک try و همچنین خط سوم این بلاک ارور داره و من نتونستم برطرفش کنم تا بتونم کد ها را تست کنم باز هم بابت پاسگویی تون ممنونم (9 سال پیش)
0 0
احتمالا کلاس های مربوط import نشده . با ctrl+shft+o اونا رو import کنید . (9 سال پیش)
0 0
بله ممنون از شما ولی باز هم وقتی تست کردم ip لوکال که از مودم گرفتم را نمایش داد (9 سال پیش)
پاسخ به سوال 
red_sky  9 سال پیش
0 0

با استفاده از php تونستم ipکاربر را بگیرم

کاربر در حین ورود به وب سرویس متصل میشه و ipش مشخص میشه

ممنون از همه

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

حالا یک سوال دیگه هم دارم اینکه میدونید چطور میشه تشخیص داد کاربر در کدام شهر ایران هست ؟

وب سرویس های زیادی سر زدم ولی هیچ کدومشون شهر ip من را درست تشخیص ندادن

یا راهی هست که با کد نویسی خودمون بتونیم یک وب سرویس مخصوص ipهای ایرانی بنویسیم که شهرشون را درست تشخیص بده؟

من فقط شهر را میخوام نه آدرس همین که شهرشون را تشخیص بده کافیه

پاسخ به سوال 
AhmadVB  9 سال پیش
+1 0

شما نمی توانید از روی آی پی شهر مشترک را تشخیص دهید.

اولا به این خاطر که توی ایران شهر های ثبت شده برای آی پی ها معمولا صحیح نیست.

ثانیا شرکت هایی مثل پارس آنلاین و شاتل که توی کل کشور سرویس می دهند تمام آی پی هایشان را به نام تهران ثبت کرده اند.

ضمنا : برای بدست آوردن شهر چرا می خواهید از اینترنت استفاده کنید؟ شاید خیلی ها در آن لحظه اینترنت نداشته باشند.

راه کار شما فقط از طریق دریافت نقطه GPS است. که می توانید آن را با یک لیست از قبل ذخیره شده مقایسه کنید و نزدیک ترین نقطه را به یکی از شهر های لیست خود پیدا کنید.

0 0
ممنون از راهنمایی شما ولی برنامه قرار کلا با اینترنت کار کنه (9 سال پیش)
پاسخ به سوال 
محمد آقا  9 سال پیش
+2 0

سلام دوست عزیز

 

ظاهرا شما برای اجرای این برنامه کمی نیاز به دانش شبکه دارید و خوشحال میشم بتونم با اطلاعات کمی که دارم کمکتون کنم :)

ببینید، در ابتدا بگم که برای سرچ اگر میخواهید آی پی جهانی رو بدست بیارید باید از واژه ی Public IP و برای اینکه بخواهید آی پی در شبکه ی محلی ( مثل همین وای فای ) رو بدست بیارید از کلمه ی کلیدی Private IP استفاده کنید ، دقت کنید که Valid IP و inValid IP کاملن واژه هایی اشتباه هستند که متاسفانه در ایران بکار برده میشن و باعث میشه سرچ شما نتایج مطلوبی دربر داشته باشه .

حالا میرسیم به سوال اصلی شما ،

در ایران و تمام جهان، در مراکزی به نام ISP که همه ی ما باهاش آشنایی داریم، پروتکل هایی نظیر NAT و PAT اجرا میشن، کار این پروتکل ها چیه حالا ؟ آی پی که ما داریم استفاده میکنیم IP v4 هست که محدود هست برای همین به تعداد زیادی از ساکنین ایران یدونه Public IP داده میشه و همین یدونه آی پی نماینده ی تعداد زیادی از مشترکین هست و با پروتکل های NAT و PAT در داخل شبکه محلی تفکیک میشه ، اینو برای چی گفتم ؟ برای اینکه سوال کردی آی پی ای که میگیرم درست نیست، دلیلش هم در واقع همینه ، بجز در موارد خاص به مشترکین IP Public داده نمیشه و هر سیستم یدونه IP Public نداره که به راحتی توسط شما قابل ردگیری باشه اما خب در مراکزی نظیر پلیس فتا از طریق mac adress سیستم ها سارقین رو ردیابی میکنن .

حالا سوال اصلی ، شما برای اجرای برنامه ات دقیقن به چه چیزی نیازی داری ؟ اینکه ببینی طرف از کدوم شهر وصل شده ؟ خب چرا برای این کار از GPS استفاده نمیکنی ؟

0 0
ممنون از راهنمایی هاتون من برای کسی دارم کار میکنم در واقع دارم بهش کمک میکنم و قراره توی این فاز تحقیقات کنم از من خواستن که مثل وایبر باید کاربر اول ثبت نام کنه و همون موقع ثبت نام باید ip کاربر را بدست بیاریم و اگه بشه از روی ip بفهمیم کاربر از کدام شهر وصل شده دقیقا چیزی که از من خواستن اینه و الان قراره من در این مورد تحقیق کنم و راه حل بدست بیارم من هم خیلی توی نت گشتم نوب سرویس های زیادی هم سر زدم و ا اونجا که مطالعه کردم فهمیدم که توی ایران تقریبا این کار شدنی نیست ولی همه جا گفته بودن میشه شهر را فهمید من هم چون فقط میخوام بدونم از کدام شهر وصل شه گفتم بپرسم از اهل فن شاید کسی بتونه کمک کنه به من تا اونحا هم که خودم توی وب سرویس های مختلف رفتم شهر را درست تشخیص ندادن (9 سال پیش)
0 0
اگه بشه مثل گوگل که با اینترنت مکانمون را تشخیص میداد این کار را بکنیم عالی میشه نمیدونم چطور میشه همچین کاری کرد (9 سال پیش)
+2 0
اون قابلیت گوگل که از اینترنت می فهمه با استفاده از یک الگوریتم پیشرفته است و نکته اینکه باز همون هم گوگل به نوعی از GPS هایی که قبلا بدست آورده می فهمد کاربر کجاست که توضیحش اینجا نمی گنجد. ولی با استفاده از دسترسی بدست آوردن مکان تقریبی (یکی از دسترسی های اندروید است) می توانید همین اطلاعات را از خود گوشی بپرسید. (9 سال پیش)
0 0
ممنون میشه بیشتر توضیح بدین در مورد این موضوع (9 سال پیش)

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .