آموزش به دست آوردن آیپی (IP) در جاوا
سلام دوستان در این سری از آموزش برنامه نویسی جاوا به آموزش به دست آوردن آیپی (IP) در جاوا می پردازیم شاید راه های مختلفی برای به دست آوردن آیپی (IP) کاربر وجود داشته باشد در این آموزش برخی از آنها را مورد بررسی قرار میدهیم و نحوه استفاده و پیاده سازی آنها را خواهید آموخت با ما همراه باشید.
رهمانطور که گفته شد راه های مختلف زیادی وجود دارد یکی از آن راه ها استفاده از InetAddress است که کدش را در ادامه مشاهده می کنید.
1 2 3 4 5 | public static void main(String args[]) throws Exception { System.out.println("My IP Address is:"); System.out.println(myIP.getHostAddress()); } |
یکی دیگر از راه ها استفاده از NetworkInterface است که تمامی آیپهایی که در یک دستگاه وجود دارد را برای شما return می کند.
1 2 3 4 5 6 7 8 9 10 11 | Enumeration e = NetworkInterface.getNetworkInterfaces(); while(e.hasMoreElements()) { NetworkInterface n = (NetworkInterface) e.nextElement(); Enumeration ee = n.getInetAddresses(); while (ee.hasMoreElements()) { InetAddress i = (InetAddress) ee.nextElement(); System.out.println(i.getHostAddress()); } } |
کدهای بالا شاید در برخی موارد به درستی کار نکنند ولی شاید یک rest یا یک api این کار را به سادگی برای ما انجام دهد.
زمانی که به آدرس زیر مراجعه کنید آیپی آدرس شما را نمایش میدهد.
1 | http://bot.whatismyipaddress.com |
ماهم از همین سایت به منظور rest یا api خود استفاده می کنیم.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | import java.io.*; import java.net.*; public class GetMyIP { public static void main(String[] args) { URL url = null; BufferedReader in = null; String ipAddress = ""; try { url = new URL("http://bot.whatismyipaddress.com"); in = new BufferedReader(new InputStreamReader(url.openStream())); ipAddress = in.readLine().trim(); if (!(ipAddress.length() > 0)) { try { InetAddress ip = InetAddress.getLocalHost(); System.out.println((ip.getHostAddress()).trim()); ipAddress = (ip.getHostAddress()).trim(); } catch(Exception exp) { ipAddress = "ERROR"; } } } catch (Exception ex) { // This try will give the Private IP of the Host. try { InetAddress ip = InetAddress.getLocalHost(); System.out.println((ip.getHostAddress()).trim()); ipAddress = (ip.getHostAddress()).trim(); } catch(Exception exp) { ipAddress = "ERROR"; } //ex.printStackTrace(); } System.out.println("IP Address: " + ipAddress); } } |
در بالا بعد از انجام request به سرور آیپی آدرس کاربر در باز خواهد گشت.
ساده ترین راه برای به دست آوردن آیپی Ping کردن به گوگل است !
1 2 3 | Socket socket = new Socket(); socket.connect(new InetSocketAddress("google.com", 80)); System.out.println(socket.getLocalAddress()); |
یک وب سایت دیگر نیز هست که آیپی کاربر را باز می گرداند
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | private String getIP() { try { URL url = new URL("http://automation.whatismyip.com/n09230945.asp"); BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream())); String ipAddress = new String(); ipAddress = (in.readLine()).trim(); if (!(ipAddress.length() > 0)) { try { InetAddress ip = InetAddress.getLocalHost(); System.out.println((ip.getHostAddress()).trim()); return ((ip.getHostAddress()).trim()); } catch(Exception ex) { return "ERROR"; } } System.out.println("IP Address is : " + ipAddress); return (ipAddress); } catch(Exception e) { try { InetAddress ip = InetAddress.getLocalHost(); System.out.println((ip.getHostAddress()).trim()); return ((ip.getHostAddress()).trim()); } catch(Exception ex) { return "ERROR"; } } } |
این آموزش هم به پایان رسید.
موفق و پیروز باشید.