Kaynak Kodu:
[CODE lang="cpp" highlight="51"]#include <iostream>
#include <vector>
std::string SendCommand(std::string Command) {
char Buffer[128];
std::string Result;
std::shared_ptr<FILE> pipe(_popen(Command.c_str(), "r"), _pclose);
while (!feof(pipe.get())) {
if (fgets(Buffer, 128, pipe.get()) != NULL)
Result += Buffer;
}
return Result;
}
std::vector<std::string> SplitString(std::string Text, std::string Delimiter) {
size_t Start = 0, End, Len = Delimiter.length();
std::string Token;
std::vector<std::string> Result;
while ((End = Text.find(Delimiter, Start)) != std::string::npos) {
Token = Text.substr(Start, End - Start);
Start = End + Len;
Result.push_back(Token);
}
Result.push_back(Text.substr(Start));
return Result;
}
bool CheckString(std::string Text, std::string Word) {
if (Text.find(Word) != std::string::npos) {
return true;
}
else {
return false;
}
}
std::string Ping(std::string IP) {
std::string Str1 = SendCommand("ping -n 1 -w 100 " + IP);
if (CheckString(Str1, "Request timed out") == true) {
return "Error";
}
std::vector<std::string> vStr1 = SplitString(Str1, "\n");
std::string Str2 = vStr1[2];
std::vector<std::string> vStr2 = SplitString(Str2, "time=");
std::string Str3 = vStr2[1];
std::vector<std::string> vStr3 = SplitString(Str3, " TTL=");
return vStr3[0];
}
int main() {
std::cout << Ping("google.com") << std::endl;
return 0;
}[/CODE]
Çıktı:
[CODE lang="cpp" highlight="51"]#include <iostream>
#include <vector>
std::string SendCommand(std::string Command) {
char Buffer[128];
std::string Result;
std::shared_ptr<FILE> pipe(_popen(Command.c_str(), "r"), _pclose);
while (!feof(pipe.get())) {
if (fgets(Buffer, 128, pipe.get()) != NULL)
Result += Buffer;
}
return Result;
}
std::vector<std::string> SplitString(std::string Text, std::string Delimiter) {
size_t Start = 0, End, Len = Delimiter.length();
std::string Token;
std::vector<std::string> Result;
while ((End = Text.find(Delimiter, Start)) != std::string::npos) {
Token = Text.substr(Start, End - Start);
Start = End + Len;
Result.push_back(Token);
}
Result.push_back(Text.substr(Start));
return Result;
}
bool CheckString(std::string Text, std::string Word) {
if (Text.find(Word) != std::string::npos) {
return true;
}
else {
return false;
}
}
std::string Ping(std::string IP) {
std::string Str1 = SendCommand("ping -n 1 -w 100 " + IP);
if (CheckString(Str1, "Request timed out") == true) {
return "Error";
}
std::vector<std::string> vStr1 = SplitString(Str1, "\n");
std::string Str2 = vStr1[2];
std::vector<std::string> vStr2 = SplitString(Str2, "time=");
std::string Str3 = vStr2[1];
std::vector<std::string> vStr3 = SplitString(Str3, " TTL=");
return vStr3[0];
}
int main() {
std::cout << Ping("google.com") << std::endl;
return 0;
}[/CODE]
Çıktı: