网络(运营商信息,网络类型)

public static class NetworkInfo
{
/// <summary>
/// 网络是否可用
/// </summary>
public static bool IsNetworkAvailable
{
get
{
ConnectionProfile profile = NetworkInformation.GetInternetConnectionProfile();
return (profile?.GetNetworkConnectivityLevel() == NetworkConnectivityLevel.InternetAccess);
}
} /// <summary>
/// 获取IP地址
/// </summary>
/// <returns>IP地址</returns>
public static string GetIpAddress()
{
Guid? networkAdapterId = NetworkInformation.GetInternetConnectionProfile()?.NetworkAdapter?.NetworkAdapterId;
return (networkAdapterId.HasValue ? NetworkInformation.GetHostNames().FirstOrDefault(hn => hn?.IPInformation?.NetworkAdapter.NetworkAdapterId == networkAdapterId)?.CanonicalName : null);
} /// <summary>
/// 获取网络运营商信息
/// </summary>
/// <returns></returns>
public static string GetNetworkName()
{
try
{
ConnectionProfile profile = NetworkInformation.GetInternetConnectionProfile();
if (profile != null)
{
if (profile.IsWwanConnectionProfile)
{
var homeProviderId = profile.WwanConnectionProfileDetails.HomeProviderId;
//4600是我手机测试出来的。
if (homeProviderId == "" || homeProviderId == "" || homeProviderId == "")
{
return "中国移动";
}
//已验证
else if (homeProviderId == "")
{
return "中国联通";
}
//貌似还没win10 电信手机。。待验证
else if (homeProviderId == "")
{
return "中国电信";
}
}
else
{
return "其他";
}
//也可以用下面的方法,已验证移动和联通
//var name = profile.GetNetworkNames().FirstOrDefault();
//if (name != null)
//{
// name = name.ToUpper();
// if (name == "CMCC")
// {
// return "中国移动";
// }
// else if (name == "UNICOM")
// {
// return "中国联通";
// }
// else if (name == "TELECOM")
// {
// return "中国电信";
// }
//}
//return "其他";
} return "其他";
}
catch (Exception)
{ return "其他";
} } /// <summary>
/// 获取网络连接类型
/// </summary>
/// <returns></returns>
public static string GetNetWorkType()
{
try
{
ConnectionProfile profile = NetworkInformation.GetInternetConnectionProfile();
if (profile == null)
{
return "未知";
}
if (profile.IsWwanConnectionProfile)
{
WwanDataClass connectionClass = profile.WwanConnectionProfileDetails.GetCurrentDataClass();
switch (connectionClass)
{
//2G-equivalent
case WwanDataClass.Edge:
case WwanDataClass.Gprs:
return "2G";
//3G-equivalent
case WwanDataClass.Cdma1xEvdo:
case WwanDataClass.Cdma1xEvdoRevA:
case WwanDataClass.Cdma1xEvdoRevB:
case WwanDataClass.Cdma1xEvdv:
case WwanDataClass.Cdma1xRtt:
case WwanDataClass.Cdma3xRtt:
case WwanDataClass.CdmaUmb:
case WwanDataClass.Umts:
case WwanDataClass.Hsdpa:
case WwanDataClass.Hsupa:
return "3G";
//4G-equivalent
case WwanDataClass.LteAdvanced:
return "4G"; //not connected
case WwanDataClass.None:
return "未连接"; //unknown
case WwanDataClass.Custom:
default:
return "未知";
}
}
else if (profile.IsWlanConnectionProfile)
{
return "WIFI";
}
return "未知";
}
catch (Exception)
{
return "未知"; //as default
} }
}

设备信息(分辨率,设备类型(PC,平板,手机,Xbox))

/// <summary>
/// 设备信息
/// </summary>
public static class DeviceInfo
{
/// <summary>
/// 设备ID
/// </summary>
public static readonly string DeviceId; /// <summary>
/// 用户代理
/// </summary>
public static readonly string UserAgent; /// <summary>
/// 操作系统版本
/// </summary>
public static readonly string OsVersion; /// <summary>
/// 设备分辨率
/// </summary>
public static readonly Size DeviceResolution; /// <summary>
/// 设备时区名字
/// </summary>
public static readonly string Timezone; /// <summary>
/// 设备语言
/// </summary>
public static readonly string Language; /// <summary>
/// 设备类型
/// </summary>
public static readonly string DeviceType; static DeviceInfo()
{
DeviceId = GetDeviceId();
UserAgent = GetUserAgent();
OsVersion = GetOsVersion();
DeviceResolution = GetDeviceResolution();
Timezone = GetTimezone();
Language = GetLanguage();
DeviceType = GetDeviceType();
} private static string GetDeviceType()
{
var deviceFamily = AnalyticsInfo.VersionInfo.DeviceFamily; if (deviceFamily == "Windows.Desktop")
{
if (UIViewSettings.GetForCurrentView().UserInteractionMode == UserInteractionMode.Mouse)
{
return "WINDESKTOP";
}
else
{
return "WINPAD";
}
}
else if (deviceFamily == "Windows.Mobile")
{
return "WINPHONE";
}
else if (deviceFamily == "Windows.Xbox")
{
return "XBOX";
}
else if (deviceFamily == "Windows.IoT")
{
return "IOT";
}
else
{
return deviceFamily.ToUpper();
}
} /// <summary>
/// 获取设备语言
/// </summary>
/// <returns>设备语言</returns>
private static string GetLanguage()
{
var Languages = Windows.System.UserProfile.GlobalizationPreferences.Languages;
if (Languages.Count > )
{
return Languages[];
}
return Windows.Globalization.Language.CurrentInputMethodLanguageTag;
} /// <summary>
/// 获取设备时区名字
/// </summary>
/// <returns>设备时区名字</returns>
private static string GetTimezone()
{
return TimeZoneInfo.Local.DisplayName;
} /// <summary>
/// 获取设备分辨率
/// </summary>
/// <returns>设备分辨率</returns>
private static Size GetDeviceResolution()
{
Size resolution = Size.Empty;
var rawPixelsPerViewPixel = DisplayInformation.GetForCurrentView().RawPixelsPerViewPixel;
foreach (var item in PointerDevice.GetPointerDevices())
{
resolution.Width = item.ScreenRect.Width * rawPixelsPerViewPixel;
resolution.Height = item.ScreenRect.Height * rawPixelsPerViewPixel;
break;
}
return resolution;
} /// <summary>
/// 获取设备ID
/// </summary>
/// <returns>设备ID</returns>
private static string GetDeviceId()
{
HardwareToken token = HardwareIdentification.GetPackageSpecificToken(null);
return CryptographyHelper.Md5Encrypt(token.Id);
} /// <summary>
/// 获取用户代理
/// </summary>
/// <returns>用户代理</returns>
private static string GetUserAgent()
{
var Info = new EasClientDeviceInformation();
return $"{Info.SystemManufacturer} {Info.SystemProductName}";
} /// <summary>
/// 获取操作系统版本
/// </summary>
/// <returns>操作系统版本</returns>
private static string GetOsVersion()
{
ulong version = Convert.ToUInt64(AnalyticsInfo.VersionInfo.DeviceFamilyVersion);
return $"{version >> 48 & 0xFFFF}.{version >> 32 & 0xFFFF}.{version >> 16 & 0xFFFF}.{version & 0xFFFF}";
} } /// <summary>
/// 加密帮助类
/// </summary>
public static class CryptographyHelper
{
public static string DesEncrypt(string key, string plaintext)
{
SymmetricKeyAlgorithmProvider des = SymmetricKeyAlgorithmProvider.OpenAlgorithm(SymmetricAlgorithmNames.DesEcbPkcs7);
IBuffer keyMaterial = CryptographicBuffer.ConvertStringToBinary(key, BinaryStringEncoding.Utf8);
CryptographicKey symmetricKey = des.CreateSymmetricKey(keyMaterial); IBuffer plainBuffer = CryptographicBuffer.ConvertStringToBinary(plaintext, BinaryStringEncoding.Utf8); IBuffer cipherBuffer = CryptographicEngine.Encrypt(symmetricKey, plainBuffer, null);
return CryptographicBuffer.EncodeToHexString(cipherBuffer);
} public static string TripleDesDecrypt(string key, string ciphertext)
{
SymmetricKeyAlgorithmProvider tripleDes = SymmetricKeyAlgorithmProvider.OpenAlgorithm(SymmetricAlgorithmNames.TripleDesEcb);
IBuffer keyMaterial = CryptographicBuffer.ConvertStringToBinary(key, BinaryStringEncoding.Utf8);
CryptographicKey symmetricKey = tripleDes.CreateSymmetricKey(keyMaterial); IBuffer cipherBuffer = CryptographicBuffer.DecodeFromHexString(ciphertext); IBuffer plainBuffer = CryptographicEngine.Decrypt(symmetricKey, cipherBuffer, null);
return CryptographicBuffer.ConvertBinaryToString(BinaryStringEncoding.Utf8, plainBuffer);
} public static string Md5Encrypt(string value)
{
IBuffer data = CryptographicBuffer.ConvertStringToBinary(value, BinaryStringEncoding.Utf8);
return Md5Encrypt(data);
} public static string Md5Encrypt(IBuffer data)
{
HashAlgorithmProvider md5 = HashAlgorithmProvider.OpenAlgorithm(HashAlgorithmNames.Md5);
IBuffer hashedData = md5.HashData(data);
return CryptographicBuffer.EncodeToHexString(hashedData);
} public static string EncodeToBase64String(string value)
{
IBuffer buffer = CryptographicBuffer.ConvertStringToBinary(value, BinaryStringEncoding.Utf8);
return CryptographicBuffer.EncodeToBase64String(buffer);
} public static string DecodeFromBase64String(string value)
{
IBuffer buffer = CryptographicBuffer.DecodeFromBase64String(value);
return CryptographicBuffer.ConvertBinaryToString(BinaryStringEncoding.Utf8, buffer);
}
}

整理UWP中网络和设备信息获取的帮助类,需要的拿走。的更多相关文章

  1. Centos7中网络及设备相关配置

    centos7中,不再赞成使用ifconfig工具,取而代之的是nmcli工具,服务管理也是以systemctl工具取代了service,这些之前版本的工具虽然在centos7中还可以继续使用,只是出 ...

  2. 获取设备信息——获取客户端ip地址和mac地址

    1.获取本地IP(有可能是 内网IP,192.168.xxx.xxx) /** * 获取本地IP * * @return */ public static String getLocalIpAddre ...

  3. 史上最全的iOS各种设备信息获取总结

    来源:si1ence 链接:http://www.jianshu.com/p/b23016bb97af 为了统计用户信息.下发广告,服务器端往往需要手机用户设备及app的各种信息,下面讲述一下各种信息 ...

  4. iOS: iOS各种设备信息获取

    Author:si1ence Link:http://www.jianshu.com/p/b23016bb97af 为了统计用户信息.下发广告,服务器端往往需要手机用户设备及app的各种信息,下面讲述 ...

  5. iOS 设备信息获取

    參考:http://blog.csdn.net/decajes/article/details/41807977參考:http://zengrong.net/post/2152.htm1. 获取设备的 ...

  6. Python 网络爬虫与信息获取(一)—— requests 库的网络爬虫

    1. 安装与测试 进入 cmd(以管理员权限),使用 pip 工具,pip install requests 进行安装: 基本用法: >> import requests >> ...

  7. 亚马逊商品页面的简单爬取 --Pyhon网络爬虫与信息获取

    1.亚马逊商品页面链接地址(本次要爬取的页面url) https://www.amazon.cn/dp/B07BSLQ65P/ 2.代码部分 import requestsurl = "ht ...

  8. 京东某商品页面的简单爬取 --Pyhon网络爬虫与信息获取

    1.京东商品页面链接地址(本次要爬取的页面url) https://item.jd.hk/1953999200.html 2.代码部分 import requestsurl = "https ...

  9. Python 网络爬虫与信息获取(二)—— 页面内容提取

    1. 获取超链接 python获取指定网页上所有超链接的方法 links = re.findall(b'"((http|ftp)s?://.*?)"', html) links = ...

随机推荐

  1. 如何判断自己的VPS是那种虚拟技术实现的

    我们知道VPS的虚拟技术有许多种,如Openvz.Xen.VMware vSphere.Hyper-V.KVM及Xen的HVM与PV等.在Xen中pv是半虚拟化,hvm是全虚拟化,pv只能用于linu ...

  2. python取mysql数据写入excel

    环境:MySQLdb openpyxl模块 python去zabbix的mysql数据库中取交换机不同时间段的进出口流量,然后写入excel中,每天cron执行,每周四邮件发送.(代码中第一行必须加上 ...

  3. log4Net控制台输出

    using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Tex ...

  4. 学习.Net的经典网站

    学习.Net的经典网站 收藏 还不错推荐给大家 原文-- 名称:快速入门 地址:http://chs.gotdotnet.com/quickstart/ 描述:本站点是微软.NET技术的快速入门网站, ...

  5. PHP5.6启动失败

    PHP编译安装完毕,启动失败,提示 1 [23-Jun-2014 12:27:02] ERROR: failed to open configuration file '/usr/local/php/ ...

  6. No module named migrate.versioning

    在学习mega-tutorial的数据库章节时创建数据库遇到了问题,在stackoverflow上找到了结果 pip install sqlalchemy==0.7.9 pip install sql ...

  7. [Head First设计模式]饺子馆(冬至)中的设计模式——工厂模式

    系列文章 [Head First设计模式]山西面馆中的设计模式——装饰者模式 [Head First设计模式]山西面馆中的设计模式——观察者模式 [Head First设计模式]山西面馆中的设计模式— ...

  8. 【08-23】redis学习笔记

    今天开始重拾linux,使用的是ubuntu发行版,主要是想在linux上学习redis,作为服务器端软件天然选择linux啊. 第一次使用ubuntu配置超级管理员密码: su passwd roo ...

  9. 如何设置phpMyAdmin自动登录和取消自动登录

    如何设置phpMyAdmin自动登录? 首先在根目录找到config.sample.inc.php复制一份文件名改为config.inc.php(如果已经存在 config.inc.php 文件,则直 ...

  10. PHP文件包含漏洞攻防实战(allow_url_fopen、open_basedir)

    摘要 PHP是一种非常流行的Web开发语言,互联网上的许多Web应用都是利用PHP开发的.而在利用PHP开发的Web应用中,PHP文件包含漏洞是一种常见的漏洞.利用PHP文件包含漏洞入侵网站也是主流的 ...