IP Header in java
On-campus and online computer science courses to Learn the basic concepts of Computer Science.This tutorial will cover c ,c++, java, data structure and algorithm,computer graphics,microprocessor,analysis of algorithms,Digital Logic Design and Analysis,computer architecture,computer networks,operating system.
code in Java:import java.io.*; public class IPHeader { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); System.out.println("Please enter the Hex Dump:"); String input = br.readLine(); String IPVer = input.substring(0,1); if(IPVer.equals("4")) System.out.println("IP Version: 4"); if(IPVer.equals("6")) System.out.println("IP Version: 6"); String h_len = input.substring(1,2); System.out.println("Header Length: " + (4 * Integer.parseInt(h_len,16))); String s_type = input.substring(2,4); String s_t_bin = Integer.toBinaryString(Integer.parseInt(s_type,16)); while(s_t_bin.length() < 8) s_t_bin = "0" + s_t_bin; System.out.println("Precedence: " + Integer.parseInt(s_t_bin.substring(0,3),2)); if(s_t_bin.charAt(3) == '1') System.out.println("Minimize Delay Requested"); if(s_t_bin.charAt(4) == '1') System.out.println("Maximize Throughput Requested"); if(s_t_bin.charAt(5) == '1') System.out.println("Maximize Reliability Requested"); if(s_t_bin.charAt(6) == '1') System.out.println("Minimize Cost Requested"); String tot_len = input.substring(4,8); System.out.println("Total Length: " + Integer.parseInt(tot_len,16) + " Bytes"); String id = input.substring(8,12); System.out.println("Identification: " + Integer.parseInt(id,16)); String frag = input.substring(12,16); String frag_bin = Integer.toBinaryString(Integer.parseInt(frag,16)); while(frag_bin.length() < 16) frag_bin = "0" + frag_bin; String frag_flags = frag_bin.substring(0,3); if(frag_flags.charAt(1) == '1') System.out.println("Do not Fragment Packet"); else System.out.println("Can be Fragmented"); if(frag_flags.charAt(2) == '1') System.out.println("More Fragments pending"); else System.out.println("No more Fragments pending"); System.out.println("Fragmentation Offset: " + ((8 * Integer.parseInt(frag_bin.substring(3, 16),2)) - (4 * Integer.parseInt(h_len,16)))); String ttl = input.substring(16,18); System.out.println("Time to live: " + Integer.parseInt(ttl,16) + " Hops"); String protocol = input.substring(18,20); System.out.print("Protocol: "); if(Integer.parseInt(protocol,16) == 1) System.out.println("ICMP"); if(Integer.parseInt(protocol,16) == 2) System.out.println("IGMP"); if(Integer.parseInt(protocol,16) == 89) System.out.println("OSPF"); if(Integer.parseInt(protocol,16) == 6) System.out.println("TCP"); if(Integer.parseInt(protocol,16) == 17) System.out.println("UDP"); String checksum = input.substring(20,24); System.out.println("Header Checksum: " + Integer.parseInt(checksum,16)); String s_ip = input.substring(24,32); String s_ip_bin = Long.toBinaryString(Long.parseLong(s_ip,16)); while(s_ip_bin.length() < 32) s_ip_bin = "0" + s_ip_bin; System.out.print("Source IP Address: "); System.out.print(Integer.parseInt(s_ip_bin.substring(0,8),2) + "."); System.out.print(Integer.parseInt(s_ip_bin.substring(8,16),2) + "."); System.out.print(Integer.parseInt(s_ip_bin.substring(16,24),2) + "."); System.out.println(Integer.parseInt(s_ip_bin.substring(24,32),2)); String d_ip = input.substring(32,40); String d_ip_bin = Long.toBinaryString(Long.parseLong(d_ip,16)); while(d_ip_bin.length() < 32) d_ip_bin = "0" + d_ip_bin; System.out.print("Destination IP Address: "); System.out.print(Integer.parseInt(d_ip_bin.substring(0,8),2) + "."); System.out.print(Integer.parseInt(d_ip_bin.substring(8,16),2) + "."); System.out.print(Integer.parseInt(d_ip_bin.substring(16,24),2) + "."); System.out.println(Integer.parseInt(d_ip_bin.substring(24,32),2)); } }output:-
Please enter the Hex Dump: 4E86512165131219210600001214561981394867 IP Version: 4 Header Length: 56 Precedence: 4 Maximize Reliability Requested Minimize Cost Requested Total Length: 20769 Bytes Identification: 25875 Can be Fragmented No more Fragments pending Fragmentation Offset: 37008 Time to live: 33 Hops Protocol: TCP Header Checksum: 0 Source IP Address: 18.20.86.25 Destination IP Address: 129.57.72.103 --------------------------------
0 comments: