Skip to main content

Network Programming - Part 3 (I)

Here's a quick and fun code that you can try on. We know that the port no spans from 0 - 65535. So lets loop through that range and find the active ports in the system. This is called a Port Scanner
There are no steps to do this. Just make a loop and try to establish a connection .


Implementation 01

import java.net.Socket;

public class MyPortScanner {
    public static void main(String[] args) {
        for (int i = 0; i < 65535; i++) {
            try {
                Socket ClientSoc = new Socket("localhost",i);
                System.out.println("Port "+i+" is active");
                ClientSoc.close();
            } catch (Exception e) {
                System.out.println("Nope nothing on "+i+" port");
            }
        }
}
}

The result I got was interesting. FYI this takes a longer time to finish scanning all 65535 ports. So I stropped just after I got a positive hit.



So what is this port 80. Port 80 is a well known port used by the HTTP (Hypertext Transfer Protocol). Go ahead and try.

Implementation 02

Another method that we can use is try to create Server Sockets with all the port numbers looping from 0 to 65535. If it fails that means a used Socket.

import java.net.ServerSocket;

public class MySecondPortScanner {
    public static void main(String[] args) {
         for (int i = 0; i < 65535; i++) {
        try {
           
                ServerSocket soc = new ServerSocket(i);
                
                System.out.println("Dude "+i+" not used");
                 
        } catch (Exception e) {
                System.out.println("This is a used socket no "+i);
        }
         }    
}
}

One of the things that I experienced was this is a very fast method compared to earlier one. I got the results for all the 65535 ports after about few seconds.

The results : 

Any other alternative method? Yes, Just go to the Command Prompt and type in netstat -p tcp -ano 

now run your simple server in port 9000 and type in the above code in the command prompt.


There it is. But where is all the fun of coding. 

Popular posts from this blog

Natural Language Processing with Python NLTK part 5 - Chunking and Chinking

Natural Language Processing Using regular expression modifiers we can chunk out the PoS tagged words from the earlier example. The chunking is done with regular expressions defining a chunk rule. The Chinking defines what we need to exclude from the selection. Here are list of modifiers for Python: {1,3} = for digits, u expect 1-3 counts of digits, or "places" + = match 1 or more ? = match 0 or 1 repetitions. * = match 0 or MORE repetitions $ = matches at the end of string ^ = matches start of a string | = matches either/or. Example x|y = will match either x or y [] = range, or "variance" {x} = expect to see this amount of the preceding code. {x,y} = expect to see this x-y amounts of the preceding code source: https://pythonprogramming.net/regular-expressions-regex-tutorial-python-3/ Chunking import nltk from nltk.tokenize import word_tokenize # POS tagging sent = "This will be chunked. This is for Test. World is awesome. Hello world....

Natural Language Processing with Python NLTK part 1 - Tokenizer

Natural Language Processing Starting with the NLP articles first we will try the  tokenizer  in the NLTK package. Tokenizer breaks a paragraph into the relevant sub strings or sentences based on the tokenizer you used. In this I will use the Sent tokenizer, word_tokenizer and TweetTokenizer which has its specific work to do. import nltk from nltk.tokenize import sent_tokenize, word_tokenize, TweetTokenizer para = "Hello there this is the blog about NLP. In this blog I have made some posts. " \ "I can come up with new content." tweet = "#Fun night. :) Feeling crazy #TGIF" # tokenizing the paragraph into sentences and words sent = sent_tokenize(para) word = word_tokenize(para) # printing the output print ( "this paragraph has " + str(len(sent)) + " sentences and " + str(len(word)) + " words" ) # print each sentence k = 1 for i in sent: print ( "sentence ...

Natural Language Processing with Python NLTK part 6 - Named Entity Recognition

Natural Language Processing - NER Named entities are specific reference to something. As a part of recognizing text NLTK has allowed us to used the named entity recognition and recognize certain types of entities. Those types are as follows NE Type Examples ORGANIZATION Georgia-Pacific Corp. ,  WHO PERSON Eddy Bonte ,  President Obama LOCATION Murray River ,  Mount Everest DATE June ,  2008-06-29 TIME two fifty a m ,  1:30 p.m. MONEY 175 million Canadian Dollars ,  GBP 10.40 PERCENT twenty pct ,  18.75 % FACILITY Washington Monument ,  Stonehenge GPE South East Asia ,  Midlothian Source:  http://www.nltk.org/book/ch07.html Simple example on NER: import nltk from nltk.tokenize import word_tokenize, sent_tokenize para = " America is a country. John is a name. " sent = sent_tokenize(para) for s in sent: word = word_tokenize(s) tag = nltk . pos_tag(word) n...