Tôi làm cách nào để ping tên máy chủ trên mạng?Ping tên máy chủ trên mạng
Trả lời
Không gian tên System.Net.NetworkInformation là những gì bạn cần. link này có thêm chi tiết
public static string PingHost(string host)
{
//string to hold our return messge
string returnMessage = string.Empty;
//IPAddress instance for holding the returned host
IPAddress address = GetIpFromHost(ref host);
//set the ping options, TTL 128
PingOptions pingOptions = new PingOptions(128, true);
//create a new ping instance
Ping ping = new Ping();
//32 byte buffer (create empty)
byte[] buffer = new byte[32];
//first make sure we actually have an internet connection
if (HasConnection())
{
//here we will ping the host 4 times (standard)
for (int i = 0; i < 4; i++)
{
try
{
//send the ping 4 times to the host and record the returned data.
//The Send() method expects 4 items:
//1) The IPAddress we are pinging
//2) The timeout value
//3) A buffer (our byte array)
//4) PingOptions
PingReply pingReply = ping.Send(address, 1000, buffer, pingOptions);
//make sure we dont have a null reply
if (!(pingReply == null))
{
switch (pingReply.Status)
{
case IPStatus.Success:
returnMessage = string.Format("Reply from {0}: bytes={1} time={2}ms TTL={3}", pingReply.Address, pingReply.Buffer.Length, pingReply.RoundtripTime, pingReply.Options.Ttl);
break;
case IPStatus.TimedOut:
returnMessage = "Connection has timed out...";
break;
default:
returnMessage = string.Format("Ping failed: {0}", pingReply.Status.ToString());
break;
}
}
else
returnMessage = "Connection failed for an unknown reason...";
}
catch (PingException ex)
{
returnMessage = string.Format("Connection Error: {0}", ex.Message);
}
catch (SocketException ex)
{
returnMessage = string.Format("Connection Error: {0}", ex.Message);
}
}
}
else
returnMessage = "No Internet connection found...";
//return the message
return returnMessage;
}
Tôi sẽ sử dụng lớp Ping.
Bạn làm cho nó có vẻ rõ ràng khi nhìn lại. –
Vâng tôi biết. Tôi đã chờ đợi để đảm bảo câu trả lời đã được chấp nhận trước khi đăng bài. – linuxuser27
Hãy thử điều này
using System;
using System.Net;
using System.Net.NetworkInformation;
using System.Text;
namespace Examples.System.Net.NetworkInformation.PingTest
{
public class PingExample
{
// args[0] can be an IPaddress or host name.
public static void Main (string[] args)
{
Ping pingSender = new Ping();
PingOptions options = new PingOptions();
// Use the default Ttl value which is 128,
// but change the fragmentation behavior.
options.DontFragment = true;
// Create a buffer of 32 bytes of data to be transmitted.
string data = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
byte[] buffer = Encoding.ASCII.GetBytes (data);
int timeout = 120;
PingReply reply = pingSender.Send (args[0], timeout, buffer, options);
if (reply.Status == IPStatus.Success)
{
Console.WriteLine ("Address: {0}", reply.Address.ToString());
Console.WriteLine ("RoundTrip time: {0}", reply.RoundtripTime);
Console.WriteLine ("Time to live: {0}", reply.Options.Ttl);
Console.WriteLine ("Don't fragment: {0}", reply.Options.DontFragment);
Console.WriteLine ("Buffer size: {0}", reply.Buffer.Length);
}
}
}
}
Vui lòng tham chiếu đoạn mã của bạn. Đó chỉ là một bản sao từ liên kết MSDN. – linuxuser27
- 1. Không thể phân giải tên máy chủ, ping hoạt động
- 2. Gửi một ping đến từng IP trên mạng con
- 3. Danh sách tất cả các máy chủ trên mạng LAN
- 4. Cách ping khách trên Ubuntu trên VirtualBox
- 5. Truy cập máy chủ ảo ảo (Miền phụ) với máy tính khác nhau trên mạng LAN
- 6. Làm thế nào để truy cập/ping một máy chủ đặt trên AWS?
- 7. cách ping icmp trên android
- 8. Làm thế nào tôi có thể ping một máy chủ với một Perl một lớp lót với Net :: Ping?
- 9. Có thể thực hiện ping trên windows phone 7 không?
- 10. Không thể ping/giao tiếp với các thiết bị Android trên cùng một mạng
- 11. WCF: Cách nhận IP máy chủ hoặc tên máy chủ
- 12. Danh sách địa chỉ IP/tên máy chủ từ mạng cục bộ trong Python
- 13. .NET2 DNS từ chối tên máy chủ trên 126 ký tự là "quá dài"
- 14. File.Copy() để tập tin máy chủ với mạng Credential
- 15. Tên/Đổi tên Máy chủ SQL Azure
- 16. liệt kê tất cả tên máy tính trên mạng cục bộ trên iPhone
- 17. Tên miền phụ trên máy chủ khác nhau
- 18. Chỉ dẫn tên máy chủ (SNI) trên Java
- 19. Cách lấy tên máy chủ dựa trên địa chỉ IP?
- 20. cấu hình tên miền nginx trên máy chủ ảo
- 21. elisp có điều kiện dựa trên tên máy chủ
- 22. Cách sử dụng máy chủ IIS trong máy ảo trên máy chủ Mac?
- 23. Kết nối với máy chủ cục bộ có đi ra ngoài mạng không?
- 24. nút máy chủ tên rối
- 25. Phát hiện mạng trên máy Mac
- 26. Mẫu cho máy chủ mạng đa luồng trong C#
- 27. Ember.js trên máy chủ
- 28. Nhiều kết nối mạng đồng thời - Máy chủ Telnet, Python
- 29. Mạng đa luồng Thư viện máy chủ UDP cho .net
- 30. Lỗi mạng khi kết nối với máy chủ sql
Bạn có thể đưa mã nguồn cho phương thức GetIpFromHost vào đây không? (Tôi hiểu rằng đó là trong liên kết, nhưng câu trả lời không thực sự làm việc mà không có nó.) Cảm ơn. – BrainSlugs83
Trên thực tế, khi kiểm tra kỹ hơn, có vẻ như thay thế dòng đó bằng: "var address = Dns.GetHostEntry (host) .AddressList.First();" là đủ tốt - và nó sẽ không còn nuốt các ngoại lệ có giá trị nữa. – BrainSlugs83
HasConnection() không được xác định. – Dave