最近配置網橋,如果忘了網橋的地址,是一件很麻煩的事情。總是要試每個網橋的地址。想着開發一個查詢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一樣拷貝給別人安裝,裝一波。
生成的快捷方式,是不是高大上。