add outbound connections, change existing stuff to be called inbound
This commit is contained in:
		
							parent
							
								
									b20fe9f6b6
								
							
						
					
					
						commit
						7851cc3299
					
				@ -13,7 +13,8 @@ import java.util.StringTokenizer;
 | 
			
		||||
public class NetPortMap {
 | 
			
		||||
 | 
			
		||||
    private Sigar sigar;
 | 
			
		||||
    private Map clients;
 | 
			
		||||
    private Map inbound;
 | 
			
		||||
    private Map outbound;
 | 
			
		||||
    private int[] states;
 | 
			
		||||
 | 
			
		||||
    private static final String SERVICE_FILE;
 | 
			
		||||
@ -130,7 +131,8 @@ public class NetPortMap {
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    public void stat(int flags) throws SigarException {
 | 
			
		||||
        this.clients = new HashMap();
 | 
			
		||||
        this.inbound = new HashMap();
 | 
			
		||||
        this.outbound = new HashMap();
 | 
			
		||||
        this.states = new int[NetFlags.TCP_UNKNOWN];
 | 
			
		||||
        for (int i=0; i<this.states.length; i++) {
 | 
			
		||||
            this.states[i] = 0;
 | 
			
		||||
@ -148,11 +150,11 @@ public class NetPortMap {
 | 
			
		||||
            //first pass, get listening port numbers
 | 
			
		||||
            if (state == NetFlags.TCP_LISTEN) {
 | 
			
		||||
                Long port = new Long(conn.getLocalPort());
 | 
			
		||||
                Map addresses = (Map)this.clients.get(port);
 | 
			
		||||
                Map addresses = (Map)this.inbound.get(port);
 | 
			
		||||
 | 
			
		||||
                if (addresses == null) {
 | 
			
		||||
                    addresses = new HashMap();
 | 
			
		||||
                    this.clients.put(port, addresses);
 | 
			
		||||
                    this.inbound.put(port, addresses);
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
@ -167,13 +169,20 @@ public class NetPortMap {
 | 
			
		||||
 | 
			
		||||
            Long port = new Long(conn.getLocalPort());
 | 
			
		||||
 | 
			
		||||
            Map addresses = (Map)this.clients.get(port);
 | 
			
		||||
            Map addresses = (Map)this.inbound.get(port);
 | 
			
		||||
            String ip = conn.getRemoteAddress();
 | 
			
		||||
 | 
			
		||||
            if (addresses == null) {
 | 
			
		||||
                continue;
 | 
			
		||||
                ip = conn.getLocalAddress();
 | 
			
		||||
                String key =
 | 
			
		||||
                    conn.getRemoteAddress() + ":" + conn.getRemotePort();
 | 
			
		||||
                addresses = (Map)this.outbound.get(key);
 | 
			
		||||
                if (addresses == null) {
 | 
			
		||||
                    addresses = new HashMap();
 | 
			
		||||
                    this.outbound.put(key, addresses);
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            String ip = conn.getRemoteAddress();
 | 
			
		||||
            IpEntry entry = (IpEntry)addresses.get(ip);
 | 
			
		||||
            if (entry == null) {
 | 
			
		||||
                entry = new IpEntry();
 | 
			
		||||
@ -188,8 +197,12 @@ public class NetPortMap {
 | 
			
		||||
     * key == Listening tcp port on the local machine.
 | 
			
		||||
     * value == List of connected remote addresses.
 | 
			
		||||
     */
 | 
			
		||||
    public Map getTcpClientConnections() {
 | 
			
		||||
        return this.clients;
 | 
			
		||||
    public Map getInboundConnections() {
 | 
			
		||||
        return this.inbound;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public Map getOutboundConnections() {
 | 
			
		||||
        return this.outbound;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public int[] getStates() {
 | 
			
		||||
@ -200,8 +213,8 @@ public class NetPortMap {
 | 
			
		||||
        NetPortMap map = new NetPortMap();
 | 
			
		||||
        map.stat();
 | 
			
		||||
 | 
			
		||||
        System.out.println("Client Connections...");
 | 
			
		||||
        Map ports = map.getTcpClientConnections();
 | 
			
		||||
        System.out.println("Inbound Connections...");
 | 
			
		||||
        Map ports = map.getInboundConnections();
 | 
			
		||||
 | 
			
		||||
        for (Iterator it = ports.entrySet().iterator();
 | 
			
		||||
             it.hasNext();)
 | 
			
		||||
@ -212,6 +225,18 @@ public class NetPortMap {
 | 
			
		||||
            System.out.println(port + "=" + addresses);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        System.out.println("\nOutbound Connections...");
 | 
			
		||||
        Map outbound = map.getOutboundConnections();
 | 
			
		||||
 | 
			
		||||
        for (Iterator it = outbound.entrySet().iterator();
 | 
			
		||||
             it.hasNext();)
 | 
			
		||||
        {
 | 
			
		||||
            Map.Entry entry = (Map.Entry)it.next();
 | 
			
		||||
            String server = (String)entry.getKey();
 | 
			
		||||
            Map addresses = (Map)entry.getValue();
 | 
			
		||||
            System.out.println(server + "=" + addresses);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        System.out.println("\nStates...");
 | 
			
		||||
        int[] states = map.getStates();
 | 
			
		||||
        for (int i=1; i<states.length; i++) {
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user