最近配置网桥,如果忘了网桥的地址,是一件很麻烦的事情。总是要试每个网桥的地址。想着开发一个查询IP助手,可以省很多的事,就试了试了试网络编程和程序打包的方法,花了一天时间做出来一个IP查询助手,速度不是很快,但也算时大大提高了效率。总结一下开发过程。
首先做了一个很low的界面,C#也做不出多么漂亮的界面。然后配上学校的logo,看上去高大上一些。
凑合看吧,这个不重要,能用就OK了。
程序很简单,直接上程序吧。会C#开发语言的一眼就能看明白,就不细细说整个过程了。前前后后试了3种网络连接方式,收益匪浅。
1.就是TCP连接方式,最常用的方式。
TcpClient tcpclient;
tcpclient=new TcpClient();
tcpclient.Connect(ipadress,port);
if(tcpclient.Connented){}
2.比较复杂一些,没用过,觉得高大上了。
string server = textBox1.Text;
Socket socket = null;//实例化Socket对象,并初始化
IPHostEntry iphostentry = null;//实例化IPHostEntry对象,并初始化
iphostentry = Dns.GetHostEntry(server);//获得主机信息</span>
foreach(IPAddress addressin iphostentry.AddressList)
{
//使用指定的IP地址和端口号实例化IPEndPoint对象
IPEndPoint IPEPoint = new IPEndPoint(address, port);
//使用Socket的构造函数实例化一个Socket对象,以便用来连接远程主机
Socket newSocket = new Socket(IPEndPoint.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
newSocket.Connect(IPEPoint);</span>
if(newSocket.Connected){}
}
还用到的是IP地址的分割,分个提取,这个还是比较有用的,以后可以用于字符串的分割。
string result="":
string IPstr="172.0.0.1";
string [] IPstrarr=IPstr.Split('.');
for(int i=0;i<IPstrarr.Length;i++)
{
result+=IPstrarr[i].Tostring()+" ";
}
result=result.Trim();
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Net.Sockets;
using System.Net;
using System.Net.NetworkInformation;
namespace IP地址查询软件
{
public partial class Form1 : Form
{
IPAddress ipaddress;
TcpClient tcpClient;
Ping pingSender = new Ping();
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
string IPstr;
string[] IPstrarr;
string result="";
string _ComputName = System.Net.Dns.GetHostName();
System.Net.IPAddress[] _IPList = Dns.GetHostAddresses(_ComputName);
for (int i = 0; i != _IPList.Length; i++)
{
if (_IPList[i].AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork)
{
textBox1.AppendText(_IPList[i].ToString());
}
}
IPstr = _IPList[_IPList.Length-1].ToString();
//IPstr = textBox1.Text;
//textBox1.AppendText(IPstr);
IPstrarr = IPstr.Split('.');
for (int j = 0; j < IPstrarr.Length; j++)
{
result += IPstrarr[j].ToString();
}
//textBox1.AppendText(result);
int d;
int d1 = int.Parse(IPstrarr[3]);
int a = int.Parse(IPstrarr[0]);
int b = int.Parse(IPstrarr[1]);
int c = int.Parse(IPstrarr[2]);
//string d1;
for (;a<255;a++)
{
for(;b<255;b++)
{
for(;c<255;c++)
{
for(d=0;d<255;d++)
{
//d1 = Convert.ToString(d);
textBox2.AppendText(a + ".");
textBox2.AppendText(b + ".");
textBox2.AppendText(c + "." + d);
//textBox2.AppendText(d1);
//textBox3.AppendText("" + Convert.ToString(Port));
tcpClient = new TcpClient();
ipaddress = IPAddress.Parse(textBox2.Text);
try
{
//tcpClient.Connect(ipaddress, Port);
PingReply reply = pingSender.Send(ipaddress, 1);
if (reply.Status == IPStatus.Success)
{
string ipaddress1 = Convert.ToString(ipaddress);
if(d!=d1)
{
textBox3.AppendText(ipaddress1);
tcpClient.Close();
button1.Enabled = false;
button1.Text = "查询完成";
break;
}
textBox2.Clear();
}
else
{
textBox2.Clear();
//textBox3.Clear();
}
}
catch
{
textBox2.Clear();
//textBox3.Clear();
}
if (!button1.Enabled)
{
break;
}
}
if (!button1.Enabled)
{
break;
}
}
if (!button1.Enabled)
{
break;
}
}
if (!button1.Enabled)
{
break;
}
}
}
}
}
1、新建一个Windows窗体应用程序,例如项目名为IP查询助手。新建的时候不要忘了创建解决方案。
2、在monitor解决方案上“右击”—— “添加”——“新建项目”,选择“其他类型项目”——“安装和部署”——“安装项目”,并命名为“IP查询助手”,
确定后显示如下图所示
3、添加必须文件: 在'应用程序文件夹'上右键,添加应用程序必须的配置文件(如果有的话),以及图标(桌面显示的图标,卸载程序的图标...).还需要添加一个系统的exe文件msiexec.exe(一般在c:\WINNT\System32目录下),用于卸载程序.
(1)在左边的“应用程序文件夹”上右击“添加”——“项目输出”,选择monitor项目
(2)在左边的“应用程序文件夹”上右击“添加”——“文件”,选择“c:"windows"system32"msiexec.exe”文件。
(3)在左边的“应用程序文件夹”上右击“添加”——“文件”,然后选择几个*.ico的图标文件
完后显示如下
4、创建快捷方式
(1)”程序菜单快捷方式“,命名为IP助手,并在其的属性栏中为其“Icon”选择刚才导入的图标。并将其拖动到“用户的”程序”菜单”文件下。
(2)桌面快捷方式:步骤同1。将其拖动到“用户桌面”下
(3)卸载快捷方式:在msiexec.exe上右击“创建msiexec.exe 的快捷方式”,并命名为“卸载Ip”。将其拖动到“用户的”程序”菜单”文件下,当然也可放在桌面。
查看IP查询助手部署项目属性,
属性值中有“{4EA38E9B-C4BF-4897-B095-E30160A27245}”类似字样,选中它“复制”。
再次点击你的卸载快捷方式名称,“卸载monitor”,再到右下角属性栏中,有一个叫Arguments的属性栏,在属性栏中首先填入“/x”后加一个空格,再“粘贴”,将ProductCode的属性值COPY至此。
5、打包.net framework
(可以默认)选择IP查询助手项目的属性,在对话框中选择“系统必备”,然后在弹出的对话框中选择“从组件供应商网站下载必备组件”,确定。
6、生成
在IP查询助手项目上右击选择“生成”,则打包成功,将在你的解决方案文件夹生成一个IP查询助手的文件夹,安装文件就在此目录下。
最后生成以后到Debug中找到exe文件就可以安装了,也可以像QQ一样拷贝给别人安装,装一波。
生成的快捷方式,是不是高大上。