The InetAddress Class.

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
สถาปัตยกรรมเทียร์ TIER ARCHITECTURE.
Advertisements

โครงสร้างโปรแกรมภาษา JAVA
Lab Part Nattee Niparnan
Component องค์ประกอบของ GUI.
Swing Component Basic Component.
การจัดการความผิดพลาด
Introduction to Java Graphic 2D
File.
บทที่ 12 การจดทะเบียนชื่อโดเมน (Domain Name Registration)
ครั้งที่ 7 Composition.
Network programming Asst. Prof. Dr. Choopan Rattanapoka
Network programming Asst. Prof. Dr. Choopan Rattanapoka
Network programming Asst. Prof. Dr. Choopan Rattanapoka
Network programming Asst. Prof. Dr. Choopan Rattanapoka
การสืบทอด (Inheritance)
การเขียนโปรแกรมเชิงวัตถุ ด้วยภาษาจาวา
LOGO Array. ประเภทของ Array - อาเรย์ 1 มิติ (One) - อาเรย์ 2 มิติ (Two) - อาเรย์ 3 มิติ (Three) 2.
โอฬาริก สุรินต๊ะ CS/MIS
บทที่ 3 Class and Object (1) การสร้างและการใช้งานคลาส
คลาสและวัตถุ (2) (Class & Object)
 เป็นเมธอดที่มีคุณลักษณะของ Polymorphism รูปแบบหนึ่ง โดยใช้ชื่อเมธอดเดียวกัน มากกว่า 1 เมธอด เพื่อทำงานในแบบเดียวกัน  คลาสลูกสามารถเขียนทับ เมธอดของคลาสแม่ได้
บทที่ 1 หลักการเขียนโปรแกรมเชิงวัตถุ
คลาสและวัตถุ (3) (Class & Object)
 เป็นเมธอดที่มีคุณลักษณะของ Polymorphism รูปแบบหนึ่ง โดยใช้ชื่อเมธอดเดียวกัน มากกว่า 1 เมธอด เพื่อทำงานในแบบเดียวกัน  คลาสลูกสามารถเขียนทับ เมธอดของคลาสแม่ได้
คลาสและวัตถุ (2) (Class & Object)
คลาสและวัตถุ (3) (Class & Object). w5_000.rar การใช้งานเมธอดภายในคลาสเดียวกัน ข้อ 24, 25 as5_000.rar การใช้งานเมธอดภายในคลาสเดียวกัน ข้อ 23 2.
บทที่ 4 Method (1).
File I/O (1) โปรแกรมจะอ่านหรือเขียนข้อมูลผ่านท่อส่งข้อมูล (Stream)
Inheritance การสืบทอดคลาส
String Class มหาวิทยาลัยเนชั่น การโปรแกรมเชิงวัตถุด้วยภาษา JAVA
อาร์เรย์ หรือแถวลำดับ (Array)
input from keyboard มหาวิทยาลัยเนชั่น การโปรแกรมเชิงวัตถุด้วยภาษา JAVA
Page: 1 การโปรแกรมเชิงวัตถุด้วยภาษา JAVA บุรินทร์ รุจจนพันธุ์.. ปรับปรุง 15 มิถุนายน 2550 Structure Programming มหาวิทยาลัยเนชั่น.
Algorithm มหาวิทยาลัยเนชั่น Java Pre-Test 49 (Series 1, 2 )
Page: 1 การโปรแกรมเชิงวัตถุด้วยภาษา JAVA บุรินทร์ รุจจนพันธุ์.. ปรับปรุง 6 มิถุนายน 2556 Exception มหาวิทยาลัยเนชั่น
Page: 1 การโปรแกรมเชิงวัตถุด้วยภาษา JAVA บุรินทร์ รุจจนพันธุ์.. ปรับปรุง 3 มิถุนายน 2550 Method of Class มหาวิทยาลัยเนชั่น.
Page: 1 การโปรแกรมเชิงวัตถุด้วยภาษา JAVA บุรินทร์ รุจจนพันธุ์.. ปรับปรุง 7 มิถุนายน 2556 Text File Processing มหาวิทยาลัยเนชั่น.
Page: 1 การโปรแกรมเชิงวัตถุด้วยภาษา JAVA บุรินทร์ รุจจนพันธุ์.. ปรับปรุง 22 มิถุนายน 2550 ความผิดพลาดที่พบ บ่อย มหาวิทยาลัยเนชั่น.
บทที่ 8 อาร์เรย์.
บทที่ 6 เมธอด.
ทำงานกับ File และStream
JAVA PROGRAMMING PART IV.
การติดต่อกับฐานข้อมูล(MySQL)
Handling Exceptions & database
โครงสร้างควบคุมการทำงาน
โปรแกรมภาษาจาวาเบื้องต้น Basic Java Programming 3(2-2-5)
คำสั่งควบคุมการ ทำงาน การเขียนโปรแกรมโดยปกติ มีทั้งให้ทำงาน เป็นลำดับ ที่ละคำสั่ง บางครั้งมีการให้เปลี่ยน ลำดับในการทำคำสั่ง เพื่อให้การเขียน โปรแกรมมีประสิทธิภาพสูงสุด.
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Java Programming Language.
The ServerSocket Class ใช้ในการจัดทำเครื่องที่เป็นการบริการ ใช้ในการจัดทำเครื่องที่เป็นการบริการ โดยจะมี ช่วงชีวิตดังนี้ โดยจะมี ช่วงชีวิตดังนี้
Object Oriented Programming Handling Exceptions
Method of Class อ.สุพจน์ สิงหัษฐิต
การเขียนโปรแกรม JAVA ขั้นพื้นฐาน
บทที่ 3 Class and Object (2).
บทที่ 2 การแสดงผลและรับข้อมูล
บทที่ 4 คำสั่งควบคุมแบบมีทางเลือก
Java collection framework
IP ADDRESS.
สายอักขระ เขียนโปรแกรม Java เบื้องต้น.
การจัดวางคอมโพเนนต์กราฟิก
Java Network Programming 1
chapter5 - คลาสนามธรรม - อินเตอร์เฟสคลาส
TECH30201 Object-Oriented Programming
Inheritance และ Encapsulation.  การสร้างหรือพัฒนาคลาสใหม่จากคลาสเดิมที่ มีอยู่แล้ว  คลาสใหม่จะนำแอตทริบิวต์และเมธอดของ คลาสเดิมมาใช้  เป็นการถ่ายทอดคุณสมบัติจากคลาสหนึ่งสู่อีก.
การจัดการกับความผิดปกติ
Application Layer.
Variable, Data type, Expression, Operators Data input, Data output
บทที่ 6 ตัวแปรชุดและ สตริง รายวิชา ง การเขียนโปรแกรมเชิง วัตถุ Reading: ใบความรู้ บทที่ 6.
WEEK5-2: 14 SEP 2017 Input / Output Selection Statement
Chapter 5 การจัดการข้อผิดพลาด (Exception Handling)
Method and Encapsulation
ใบสำเนางานนำเสนอ:

The InetAddress Class

The InetAddress Class ใช้แสดงและจัดการค้นหา IP Address ,Host Name ของเครื่องคอมพิวเตอร์ที่ อยู่ในระบบ Network ใช้ได้กับ IPv4 และ IPv6 ค้นหาผ่าน Local DNS Server การเรียกใช้ import java.net.InetAddress

Creating New InetAddress Objects No Constructor มี 3 static Methods public static InetAddress getByName(String hostName) throws UnknownHostException public static InetAddress[] getAllByName(String hostName) throws UnknownHostException public static InetAddress getLocalHost( ) throws UnknownHostException

InetAddress.getByName( ) java.net.InetAddress address = java.net.InetAddress.getByName("www.oreilly.com"); InetAddress address = InetAddress.getByName("www.oreilly.com");

ตัวอย่างInetAddress.getByName( ) แสดง IP Address จากชื่อ Domain Name import java.net.*; import javax.swing.*; public class showIPwww { public static void main (String[] args) { String doMainName=""; try { doMainName=JOptionPane.showInputDialog("Domain name :"); InetAddress address = InetAddress.getByName(doMainName); JOptionPane.showMessageDialog(null,"IP:"+address.getHostAddress()); } catch (UnknownHostException ex) { System.out.println("Could not find "+doMainName);

ตัวอย่างInetAddress.getByName( ) แสดง ชื่อ Domain Name จาก IP Address import java.net.*; import javax.swing.*; public class showDoMainName { public static void main (String[] args) { String ip=""; try { ip=JOptionPane.showInputDialog("Input IP Address :"); InetAddress address = InetAddress.getByName(ip); System.out.println(address.getHostName()); } catch (UnknownHostException ex) { System.out.println("Could not find "+ip);

InetAddress[ ] getAllByName(String hostName) คอมพิวเตอร์ที่อยู่บนNetwork อาจจะมีหลาย IP Address ทำเก็บ IP Address ใน Array InetAddress[] addresses = InetAddress.getAllByName("www.apple.com");

InetAddress[ ] getAllByName(String hostName) ทำการแสดง IP Address ของ Microsoft.com import java.net.*; public class AllAddressesOfMicrosoft { public static void main (String[] args) { try { InetAddress[] addresses = InetAddress.getAllByName("www.microsoft.com"); for (int i = 0; i < addresses.length; i++) { System.out.println(addresses[i]); } catch (UnknownHostException ex) { System.out.println("Could not find www.microsoft.com");

InetAddress[ ] getAllByName(String hostName) ผลลัพธ์ www.microsoft.com/63.211.66.123 www.microsoft.com/63.211.66.124 www.microsoft.com/63.211.66.131 www.microsoft.com/63.211.66.117 www.microsoft.com/63.211.66.116 www.microsoft.com/63.211.66.107 www.microsoft.com/63.211.66.118 www.microsoft.com/63.211.66.115 www.microsoft.com/63.211.66.110

public byte[] getAddress( ) การหาค่า IP Address โดยมาเก็บใน Byte Array โดยที่ ต้อง แปลงค่า ก่อนนำมาแสดงผลโดยที่ ถ้าค่าที่ได้ติดลบให้บวกด้วย 256 InetAddress address = InetAddress.getByName("www.fareastern.ac.th"); byte[] ips=address.getAddress();

public byte[] getAddress( ) import java.net.*; public class showHostNameByByteArray{ public static void main (String[] args) { try { InetAddress address = InetAddress.getByName("www.fareastern.ac.th"); byte[] ips=address.getAddress(); for(int i=0;i<ips.length;i++){ int unsignedByte = ips[i] < 0 ? ips[i] + 256 : ips[i]; System.out.print(unsignedByte+"."); } catch (UnknownHostException ex) { System.out.println("Could not find "); ผลลัพธ์ 203.146.43.135

InetAddress getLocalHost( ) Return InetAddress ของเครื่องที่ใช้อยู่ InetAddress me = InetAddress.getLocalHost( ); import java.net.*; public class showipLocal { public static void main (String[] args) { try { InetAddress address = InetAddress.getLocalHost( ); System.out.println(address); } catch (UnknownHostException ex) { System.out.println("Could not find this computer's address.");

Testing Reachability ทำการตรวจสอบ การเชื่อมต่อกับ Host ปลายทางว่าสามารถที่จะเชื่อมต่อได้หรือไม่ ใช้ได้กับ java 1.5 ขึ้นไป ถ้าเกิดข้อผิดพลาดจะ thows IOException อาจจะไม่สามารถเชื่อมต่อได้ เนื่องจากติด Firewall public boolean isReachable(int timeout) public boolean isReachable(NetworkInterface interface, int ttl, int timeout) โดยที่ NetworkInterface คือ Network card ของเครื่อง ttl(time-to-live) คือจำนวนสูงสุดของ Network Hops ที่ใช้

Testing Reachability import java.net.*; import java.util.*; import javax.swing.*; public class testIsReach { public static void main (String[] args) { try { InetAddress address = InetAddress.getByName(“192.168.0.2”); long start=new Date().getTime(); if(address.isReachable(3000)){ long end=new Date().getTime()-start; System.out.println(address +" "+end); }else System.out.println("Error "); } catch (Exception ex) { System.out.println("Could not find "+doMainName); //ผลลัพธ์ /192.168.0.2 1026

Address Types public boolean isAnyLocalAddress( ) public boolean isLoopbackAddress( ) public boolean isLinkLocalAddress( ) public boolean isSiteLocalAddress( ) public boolean isMulticastAddress( ) public boolean isMCGlobal( ) public boolean isMCNodeLocal( ) public boolean isMCLinkLocal( ) public boolean isMCSiteLocal( ) public boolean isMCOrgLocal( )

ตัวอย่างการตรวจสอบAddress Types import java.net.*; import javax.swing.*; public class IPCharacteristics { public static void main(String[] args) { String ip=""; try { ip=JOptionPane.showInputDialog("Input IP Address :"); InetAddress address = InetAddress.getByName(ip); if (address.isAnyLocalAddress( )) { System.out.println(address + " is a wildcard address."); } if (address.isLoopbackAddress( )) { System.out.println(address + " is loopback address.");

ตัวอย่างการตรวจสอบAddress Types if (address.isLinkLocalAddress( )) { System.out.println(address + " is a link-local address."); } else if (address.isSiteLocalAddress( )) { System.out.println(address + " is a site-local address."); else { System.out.println(address + " is a global address."); if (address.isMulticastAddress( )) { if (address.isMCGlobal( )) { System.out.println(address + " is a global multicast address."); else if (address.isMCOrgLocal( )) { System.out.println(address + " is an organization wide multicast address.");

ตัวอย่างการตรวจสอบAddress Types else if (address.isMCSiteLocal( )) { System.out.println(address + " is a site wide multicast address."); } else if (address.isMCLinkLocal( )) { System.out.println(address + " is a subnet wide multicast address."); else if (address.isMCNodeLocal( )) { System.out.println(address + " is an interface-local multicast address."); else { System.out.println(address + " is an unknown multicast address type."); System.out.println(address + " is a unicast address."); catch (UnknownHostException ex) { System.err.println("Could not resolve " + args[0]);

public boolean equals(Object o) ตรวจสอบ ชื่อ Host Name ว่าอ้างถึง IP เดียวกันหรือไม่ import java.net.*; public class CheckSameIP { public static void main (String args[]) { try { InetAddress ibiblio = InetAddress.getByName("www.ibiblio.org"); InetAddress helios = InetAddress.getByName("helios.metalab.unc.edu"); if (ibiblio.equals(helios)) { System.out.println ("www.ibiblio.org is the same as helios.metalab.unc.edu"); } else { ("www.ibiblio.org is not the same as helios.metalab.unc.edu"); catch (UnknownHostException ex) { System.out.println("Host lookup failed.");

The NetworkInterface Class ทำหน้าที่ ตรวจสอบ Network Card ภายในเครื่อง แสดง Network Card ภายในเครื่อง ถ้า error จะ thows SocketException ค้นหา primary Ethernet interface try { NetworkInterface ni = NetworkInterface.getByName("eth0"); if (ni == null) { System.err.println("No such interface: eth0" ); } catch (SocketException ex) { System.err.println("Could not list sockets." );

The NetworkInterface Class import java.net.*; import java.util.*; public class findNetworkInterface { public static void main(String[] args) throws Exception { Enumeration interfaces = NetworkInterface.getNetworkInterfaces( ); while (interfaces.hasMoreElements( )) { NetworkInterface ni = (NetworkInterface) interfaces.nextElement( ); System.out.println(ni); }

The NetworkInterface Class ผลลัพธ์(ขึ้นอยู่กับเครื่อง) name:lo (MS TCP Loopback interface) index: 1 addresses:/127.0.0.1; name:eth0 (NVIDIA nForce Networking Controller - Packet Scheduler Miniport) index: 2 addresses: name:eth1 (Broadcom 802.11b/g WLAN - Packet Scheduler Miniport) index: 131075 addresses: /192.168.10.108

public Enumeration getInetAddresses( ) ใน 1 Network interface อาจจะมีหลาย IP ใช้แสดง IP Address ของ Network interface NetworkInterface eth0 = NetworkInterrface.getByName("eth0"); Enumeration addresses = eth0.getInetAddresses( ); while (addresses.hasMoreElements( )) { System.out.println(addresses.nextElement( )); }