43

I want to write a C or C++ program, that given an IP address, Pings it and then performs further action based on whether the Ping was successful or not. How to do this?

Vishal
  • 989
  • 2
  • 11
  • 19
  • Depending on what you want to accomplish, the nmap sources may be interesting to look through. – dascandy Jul 14 '11 at 17:40
  • Duplicate: http://stackoverflow.com/questions/8189935/is-there-any-way-to-ping-a-specific-ip-address-with-c/23071412#23071412 – Leo Rohr Jul 16 '15 at 22:23

4 Answers4

28

Have a blast at The Ping Page, which has a link to full source on the original Unix ping(8).

Nikolai Fetissov
  • 82,306
  • 11
  • 110
  • 171
  • Thanks! It has a lot of legacy code that makes it not work properly with modern C compilers. Is there an updated source code for ping? – perrocallcenter Jan 10 '23 at 04:24
19

EDIT I saw after I posted, you are on Ubuntu. However someone searching this question may still find these links helpful for Windows.

Ping: Raw Sockets Method: http://tangentsoft.net/wskfaq/examples/rawping.html

Implementing Internet Pings Using Icmp.dll: http://support.microsoft.com/default.aspx?scid=kb;en-us;170591

IcmpSendEcho Function: http://msdn.microsoft.com/en-us/library/aa366050%28VS.85%29.aspx

Ping for Windows: http://www.codeproject.com/KB/IP/winping.aspx

T.T.T.
  • 33,367
  • 47
  • 130
  • 168
5

This post is old but I think the following link will help future people lookign for a good explanation on how to create a Ping request.

David Gatti
  • 3,576
  • 3
  • 33
  • 64
3
#include <iostream>
using namespace std;
int main() {
int x = system("ping -c1 -s1 8.8.8.8  > /dev/null 2>&1");
if (x==0){
    cout<<"success";
}else{
    cout<<"failed";
}

replace 8.8.8.8 from your IP Address