그래서 나는 두 개의 IP 주소를 사용하고 각각을 비교하여 어떤 주소가 ping되어야 하는지를 계산하는 범위 핑거를 만들려고합니다.사용자 입력에서 범위를 확인하는 올바른 범위의 핑거 알고리즘은 무엇입니까?
문제는 하루 종일 아무 것도 생각해 내지 못했던 코드를 만드는 방법을 생각한 이후로 내가 여기 왔음을 의미합니다.
예를 들어 192.168.0.1에서 192.168.1.1까지의 주소 범위를 가지고 있습니다. 즉, 254 개의 IP 주소를 핑합니다.
어떻게 이런 일이 벌어 질까요?
IF 문을 확인해야하는 항목은 무엇입니까?
지금 현재 나는이있다 :
는public partial class PingIPRange : Form
{
public PingIPRange()
{
InitializeComponent();
txtFrom.Text = "74.125.225.20";
txtTo.Text = "74.125.225.30";
}
private void btnPing_Click(object sender, EventArgs e)
{
//for (int i = 0; i < int.Parse(txtRepeat.Text); i++)
//{
CalculateRange(txtFrom.Text, txtTo.Text);
//}
}
private void CalculateRange(string addressFrom, string addressTo)
{
int max = 10;
int min = 0;
int from1 = 0;
int from2 = 0;
int from3 = 0;
int from4 = 0;
int to1 = 0;
int to2 = 0;
int to3 = 0;
int to4 = 0;
var from = txtFrom.Text.Split('.');
var to = txtTo.Text.Split('.');
if (from.Length == 4)
{
from1 = int.Parse(from[0]);
from2 = int.Parse(from[1]);
from3 = int.Parse(from[2]);
from4 = int.Parse(from[3]);
}
if (to.Length == 4)
{
to1 = int.Parse(to[0]);
to2 = int.Parse(to[1]);
to3 = int.Parse(to[2]);
to4 = int.Parse(to[3]);
}
if (from1 == to1 && from2 == to2 && from3 == to3 && from4 == to4)
{
Ping(string.Format("{0}.{1}.{2}.{3}", from1, from2, from3, from4));
}
else
{
}
}
private void Ping(string address)
{
Ping pingSender = new Ping();
PingOptions options = new PingOptions();
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;
try
{
PingReply reply = pingSender.Send(address, timeout, buffer, options) ;
if (reply.Status == IPStatus.Success)
{
/*PingReply replyy = pingSender.Send(address, timeout, buffer, options);
if (reply.Status == IPStatus.Success)
{
txtDisplay.Text += "IP: " + replyy.Address.ToString() + ". "
+ "Round Trip: " + replyy.RoundtripTime + ". "
+ "TTL: " + replyy.Options.Ttl + ". "
+ "Don't Fragment: " + replyy.Options.DontFragment + ". "
+ "Buffer Size: " + replyy.Buffer.Length + ". ";
}*/
txtDisplay.Text += "Host " + address + " is open." + Environment.NewLine;
}
else
{
txtDisplay.Text += "Host " + address + " is closed." + Environment.NewLine;
}
}
catch (Exception ex)
{
txtDisplay.SelectedText += Environment.NewLine + ex.Message;
}
}
}
여기에 * 모든 * 길을 찾아야했습니다! – Kris
@Kris : 예, 케이블 길이가 길습니다. D 그러나이 문제로 내 마음을 감싸는 방식으로이 구문을 만드는 데 문제가 있습니다. – NewHelpNeeder
마침내, 당신은 해결책을 찾았습니다. 해결 된 것 같습니다. :) – Kris