Skip to content

Commit

Permalink
- IPQuery: change targetFramework from "net45" to "net40"
Browse files Browse the repository at this point in the history
  • Loading branch information
keepwn committed Dec 19, 2014
1 parent 9af3cf5 commit eca6993
Show file tree
Hide file tree
Showing 5 changed files with 121 additions and 53 deletions.
106 changes: 86 additions & 20 deletions Source/Plugin_IPQuery/IPOnlineQuery.cs
Original file line number Diff line number Diff line change
Expand Up @@ -13,57 +13,123 @@ namespace Plugin_IPQuery
{
public class IPOnlineQuery
{
public async Task<string> GetHtml(string url, string post)
public class QueryCompletedEventArgs : EventArgs
{
public string Result;
public string Token;
public QueryCompletedEventArgs(string result,string token)
{
Result = result;
Token = token;
}
}

private void GetHtml(string url, string post, object token)
{
var client = new WebClient();
client.UploadDataCompleted += client_UploadDataCompleted_html;
//client.Headers.Add("Accept-Language", "zh-CN");
client.Headers.Add("User-Agent", "Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko");
client.Headers.Add("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8");
client.Headers.Add("Referer", "http://tool.17mon.cn/ip.php");
var postString = post;
var postData = Encoding.Default.GetBytes(postString);
var responseData = client.UploadDataTaskAsync(new Uri(url), "POST", postData);
var srcString = Encoding.UTF8.GetString(await responseData);
return srcString;
client.UploadDataAsync(new Uri(url), "POST", postData, token);
//var srcString = Encoding.UTF8.GetString(responseData);
//return srcString;
}

public async Task<JObject> GetJson(string url, string post)
private void GetJson(string url, string post, object token)
{
var client = new WebClient();
client.UploadDataCompleted += client_UploadDataCompleted_json;
client.Headers.Add("User-Agent", "Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko");
client.Headers.Add("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
client.Headers.Add("Referer", "http://tool.17mon.cn/ip.php");
client.Headers.Add("X-Requested-With", "XMLHttpRequest");
var postString = post;
var postData = Encoding.Default.GetBytes(postString);
var responseData = client.UploadDataTaskAsync(new Uri(url), "POST", postData);
var srcString = Encoding.Default.GetString(await responseData);
return JObject.Parse(srcString);
client.UploadDataAsync(new Uri(url), "POST", postData, token);
//var srcString = Encoding.Default.GetString(await responseData);
//return JObject.Parse(srcString);
}

public EventHandler<QueryCompletedEventArgs> OnQueryCompleted;
private void client_UploadDataCompleted_html(object sender, UploadDataCompletedEventArgs e)
{
if (OnQueryCompleted != null)
{
var token = e.UserState is string ? (string) e.UserState : "";
var data = "";
if (e.Error == null)
{
var srcString = Encoding.UTF8.GetString(e.Result);
switch (token)
{
case "17mon":
data = Normalize17Mon(srcString);
break;
}
}
else
{
data = e.Error.Message;
}
OnQueryCompleted(sender, new QueryCompletedEventArgs(data, token));
}
}

private void client_UploadDataCompleted_json(object sender, UploadDataCompletedEventArgs e)
{
if (OnQueryCompleted != null)
{
var token = e.UserState is string ? (string) e.UserState : "";
var data = "";
if (e.Error == null)
{
var srcString = Encoding.UTF8.GetString(e.Result);
var json = JObject.Parse(srcString);
switch (token)
{
case "taobao":
data = NormalizeTaobao(json);
break;
case "sina":
data = NormalizeSina(json);
break;
case "tencent":
data = NormalizeTencent(json);
break;
}
}
else
{
data = e.Error.Message;
}
OnQueryCompleted(sender, new QueryCompletedEventArgs(data, token));
}
}

public async Task<string> GetIpInfo(string ip, string type)
public void GetIpInfo(string ip, string type)
{
var url = "http://tool.17mon.cn/ip.php?a=ajax";
var post = string.Format("type={0}&ip={1}", type, ip);
switch (type)
{
case "taobao":
return NormalizeTaobao(await GetJson(url, post));
case "sina":
return NormalizeSina(await GetJson(url, post));
case "tencent":
return NormalizeTencent(await GetJson(url, post));
GetJson(url, post, type);
break;
case "17mon":
url = "http://tool.17mon.cn/ip.php";
post = string.Format("ip={0}", ip);
var html = await GetHtml(url, post);
return Normalize17Mon(html);
default:
return "";
GetHtml(url, post, type);
break;
}
}

public string Normalize17Mon(string html)
private string Normalize17Mon(string html)
{
var pattern = "<span id=\"myself\">(?<ip>.*?)</span>";
var regex = new Regex(pattern, RegexOptions.Singleline);
Expand All @@ -75,7 +141,7 @@ public string Normalize17Mon(string html)
return "error";
}

public string NormalizeTaobao(JObject json)
private string NormalizeTaobao(JObject json)
{
try
{
Expand All @@ -100,7 +166,7 @@ public string NormalizeTaobao(JObject json)
}
}

public string NormalizeSina(JObject json)
private string NormalizeSina(JObject json)
{
try
{
Expand All @@ -123,7 +189,7 @@ public string NormalizeSina(JObject json)
}
}

public string NormalizeTencent(JObject json)
private string NormalizeTencent(JObject json)
{
try
{
Expand Down
59 changes: 30 additions & 29 deletions Source/Plugin_IPQuery/Interface/PanelIPQuery.cs
Original file line number Diff line number Diff line change
Expand Up @@ -37,44 +37,45 @@ void _buttonOffline_Click(object sender, System.EventArgs e)
}
}

async void _buttonOnline_Click(object sender, System.EventArgs e)
void _buttonOnline_Click(object sender, System.EventArgs e)
{
var ip = _textBoxInput.Text;
if (!string.IsNullOrWhiteSpace(ip))
{
Get17mon(ip);
GetTaobao(ip);
GetTencent(ip);
GetSina(ip);
}
}
//clear
_lableIp.Text = "";
_labelA.Text = "";
_labelB.Text = "";
_labelC.Text = "";

private async void Get17mon(string ip)
{
var query = new IPOnlineQuery();
var result = await query.GetIpInfo(ip, "17mon");
_lableIp.Text = result != "" ? result : "empty";
}
var query = new IPOnlineQuery();
query.OnQueryCompleted += client_UploadDataCompleted;

private async void GetTaobao(string ip)
{
var query = new IPOnlineQuery();
var result = await query.GetIpInfo(ip, "taobao");
_labelA.Text = result != "" ? result : "empty";
}

private async void GetTencent(string ip)
{
var query = new IPOnlineQuery();
var result = await query.GetIpInfo(ip, "tencent");
_labelB.Text = result != "" ? result : "empty";
query.GetIpInfo(ip, "17mon");
query.GetIpInfo(ip, "taobao");
query.GetIpInfo(ip, "tencent");
query.GetIpInfo(ip, "sina");
}
}

private async void GetSina(string ip)
void client_UploadDataCompleted(object sender, IPOnlineQuery.QueryCompletedEventArgs e)
{
var query = new IPOnlineQuery();
var result = await query.GetIpInfo(ip, "sina");
_labelC.Text = result != "" ? result : "empty";
var result = e.Result!= "" ? e.Result : "empty";
switch (e.Token)
{
case "taobao":
_labelA.Text = result;
break;
case "tencent":
_labelB.Text = result;
break;
case "sina":
_labelC.Text = result;
break;
case "17mon":
_lableIp.Text = result;
break;
}
}
}
}
5 changes: 3 additions & 2 deletions Source/Plugin_IPQuery/Plugin_IPQuery.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,9 @@
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>Plugin_IPQuery</RootNamespace>
<AssemblyName>Plugin_IPQuery</AssemblyName>
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
Expand All @@ -35,7 +36,7 @@
</Reference>
<Reference Include="Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\packages\Newtonsoft.Json.6.0.6\lib\net45\Newtonsoft.Json.dll</HintPath>
<HintPath>..\packages\Newtonsoft.Json.6.0.6\lib\net40\Newtonsoft.Json.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.ComponentModel.Composition" />
Expand Down
2 changes: 1 addition & 1 deletion Source/Plugin_IPQuery/Properties/AssemblyInfo.cs
Original file line number Diff line number Diff line change
Expand Up @@ -32,5 +32,5 @@
// 可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值,
// 方法是按如下所示使用“*”:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.4.0.0")]
[assembly: AssemblyVersion("1.4.1.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
2 changes: 1 addition & 1 deletion Source/Plugin_IPQuery/packages.config
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Newtonsoft.Json" version="6.0.6" targetFramework="net45" />
<package id="Newtonsoft.Json" version="6.0.6" targetFramework="net40" />
</packages>

0 comments on commit eca6993

Please sign in to comment.