Identification of P2P (peer to peer) applications inside network traffic plays an important role for route provisioning, traffic policing, flow prioritization, network service pricing, network capacity planning and network resource management. Inspecting and identifying the P2P applications is one of the most important tasks to have a network that runs efficiently. In this paper, we focus on identification of different P2P applications. To this end, we explore four commonly used supervised machine learning algorithms as C4.5, Ripper, SVM(Support Vector Machines), Naïve Bayesian and well known unsupervised machine learning algorithm K-Means on four different datasets. We evaluate their performances to identify the P2P applications that each traffic flow belongs to. Evaluations show that, Ripper algorithm gives better results than the others.