网站如何iis禁止ip访问网站在移动端访问

如何让手机禁止访问一个指定网站?_百度知道&&&&限制电脑PC端访问Web页面,只能手机端才能访问
限制电脑PC端访问Web页面,只能手机端才能访问
兼容于主流手机浏览器,兼容WP系统手机。已经经过测试。
若举报审核通过,可奖励20下载分
被举报人:
举报的资源分:
请选择类型
资源无法下载
资源无法使用
标题与实际内容不符
含有危害国家安全内容
含有反动色情等内容
含广告内容
版权问题,侵犯个人或公司的版权
*详细原因:
VIP下载&&免积分60元/年(1200次)
您可能还需要
移动开发下载排行怎样用10086禁止手机访问互联网_百度知道您的举报已经提交成功,我们将尽快处理,谢谢!
请在手机系统设置--应用软件--找到腾讯手机管家,给予管家悬浮窗权限。打开腾讯手机管家——个人中心——设置——小火箭与悬浮窗在手机桌面会有一个显示内存比例的空心...
你好,现在越狱的苹果机可以下载安装腾讯手机管家PRO版本,
然后登录腾讯手机管家--安全防护--骚扰拦截--点击 右上角“拦截”--添加 黑名单--完成
去蓝牙开关
在手机里面就有一个黑名单,把号码加入黑名单就可以,一般手机都在联系人里面,你找找看
很多事系统原因,你重新更新下版本看看,谢谢
大家还关注5807人阅读
Android_网络应用(6)
开启和关闭移动数据网络有两种方法:一种是通过操作系统的数据库改变APN(网络接入点),从而实现开启和关闭移动数据网络,另一种是通过反射调用系统(ConnectivityManager)的setMoblieDataEnabled方法,通过操作该方法开启和关闭系统移动数据,同时也可以通过反射调用getMoblieDataEnabled方法获取当前的开启和关闭状态。
第一种方式:
&& 通过APN的方式开启和关闭很威猛啊,为什么这么说呢,废话不多说,先看代码:
&& 1. 匹配类:
&&public&final&class&APNMatchTools&&{&&&&&&&&&&&&&&public&static&String&CMWAP&=&&cmwap&;&&&&&&&&&&&&&&public&static&String&CMNET&=&&cmnet&;&&&&&&&&&&&&&&&&public&static&String&GWAP_3&=&&3gwap&;&&&&&&&&&&&&&&public&static&String&GNET_3&=&&3gnet&;&&&&&&&&&&&&&&public&static&String&UNIWAP&=&&uniwap&;&&&&&&&&&&&&&&public&static&String&UNINET&=&&uninet&;&&&&&&&&&&&&&&public&static&String&CTWAP&=&&ctwap&;&&&&&&&&&&&&&&public&static&String&CTNET&=&&ctnet&;&&&&&&&&public&static&String&matchAPN(String&currentName)&&&&&&{&&&&&&&&&&&&if&(&&.equals(currentName)&||&null&==&currentName)&&&&&&&&&&{&&&&&&&&&&&&&&&&return&&&;&&&&&&&&&&}&&&&&&&&&&&&&&&&&&&&&&currentName&=&currentName.toLowerCase();&&&&&&&&&&&&&&&&&&&&if&(currentName.startsWith(CMNET))&&&&&&&&&&&&&&return&CMNET;&&&&&&&&&&else&if&(currentName.startsWith(CMWAP))&&&&&&&&&&&&&&return&CMWAP;&&&&&&&&&&else&if&(currentName.startsWith(GNET_3))&&&&&&&&&&&&&&return&GNET_3;&&&&&&&&&&&&else&if&(currentName.startsWith(GWAP_3))&&&&&&&&&&&&&&return&GWAP_3;&&&&&&&&&&else&if&(currentName.startsWith(UNINET))&&&&&&&&&&&&&&return&UNINET;&&&&&&&&&&&&else&if&(currentName.startsWith(UNIWAP))&&&&&&&&&&&&&&return&UNIWAP;&&&&&&&&&&else&if&(currentName.startsWith(CTWAP))&&&&&&&&&&&&&&return&CTWAP;&&&&&&&&&&else&if&(currentName.startsWith(CTNET))&&&&&&&&&&&&&&return&CTNET;&&&&&&&&&&else&if&(currentName.startsWith(&default&))&&&&&&&&&&&&&&return&&default&;&&&&&&&&&&else&&&&&&&&&&&&&&return&&&;&&&&&&}&&&&}&&
2. 开启和关闭APN的方法在ApnSwitchTest类中实现,如下:
import&java.util.ArrayL&&import&java.util.L&&&&import&android.app.A&&import&android.content.ContentV&&import&android.database.C&&import&android.net.U&&import&android.util.L&&&&public&class&ApnSwitchTest&extends&Activity&&{&&&&&&&&Uri&uri&=&Uri.parse(&content://telephony/carriers/preferapn&);&&&&&&&&&&&&&&&&public&void&openAPN()&&&&&&{&&&&&&&&&&List&APN&&list&=&getAPNList();&&&&&&&&&&for&(APN&apn&:&list)&&&&&&&&&&{&&&&&&&&&&&&&&ContentValues&cv&=&new&ContentValues();&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&cv.put(&apn&,&APNMatchTools.matchAPN(apn.apn));&&&&&&&&&&&&&&cv.put(&type&,&APNMatchTools.matchAPN(apn.type));&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&getContentResolver().update(uri,&cv,&&_id=?&,&new&String[]&&&&&&&&&&&&&&{&&&&&&&&&&&&&&&&&&apn.id&&&&&&&&&&&&&&});&&&&&&&&&&}&&&&&&&&}&&&&&&&&&&&&&&public&void&closeAPN()&&&&&&{&&&&&&&&&&List&APN&&list&=&getAPNList();&&&&&&&&&&for&(APN&apn&:&list)&&&&&&&&&&{&&&&&&&&&&&&&&&&&&&&&&&&&&&&ContentValues&cv&=&new&ContentValues();&&&&&&&&&&&&&&&&&&&&&&&&&&&&cv.put(&apn&,&APNMatchTools.matchAPN(apn.apn)&+&&close&);&&&&&&&&&&&&&&cv.put(&type&,&APNMatchTools.matchAPN(apn.type)&+&&close&);&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&getContentResolver().update(uri,&cv,&&_id=?&,&new&String[]&&&&&&&&&&&&&&{&&&&&&&&&&&&&&&&&&apn.id&&&&&&&&&&&&&&});&&&&&&&&&&}&&&&&&}&&&&&&&&&&&&public&static&class&APN&&&&&&{&&&&&&&&&&String&&&&&&&&&&&&&String&&&&&&&&&&&&&String&&&&&&&}&&&&&&&&private&List&APN&&getAPNList()&&&&&&{&&&&&&&&&&&&&&&&&&&&String&projection[]&=&&&&&&&&&&{&&&&&&&&&&&&&&&_id,&apn,&type,&current&&&&&&&&&&&};&&&&&&&&&&&&&&&&&&&&Cursor&cr&=&getContentResolver().query(uri,&projection,&null,&null,&null);&&&&&&&&&&&&&&&&&&&&&&List&APN&&list&=&new&ArrayList&APN&();&&&&&&&&&&&&while&(cr&!=&null&&&&cr.moveToNext())&&&&&&&&&&{&&&&&&&&&&&&&&&&Log.d(&ApnSwitch&,&&id&&+&cr.getString(cr.getColumnIndex(&_id&))&+&&&\n&&+&&apn&&&&&&&&&&&&&&&&&&&&&&&+&cr.getString(cr.getColumnIndex(&apn&))&+&&\n&&+&&type&&&&&&&&&&&&&&&&&&&&&&&+&cr.getString(cr.getColumnIndex(&type&))&+&&\n&&+&&current&&&&&&&&&&&&&&&&&&&&&&&+&cr.getString(cr.getColumnIndex(&current&)));&&&&&&&&&&&&&&&&APN&a&=&new&APN();&&&&&&&&&&&&&&&&a.id&=&cr.getString(cr.getColumnIndex(&_id&));&&&&&&&&&&&&&&a.apn&=&cr.getString(cr.getColumnIndex(&apn&));&&&&&&&&&&&&&&a.type&=&cr.getString(cr.getColumnIndex(&type&));&&&&&&&&&&&&&&list.add(a);&&&&&&&&&&}&&&&&&&&&&&&if&(cr&!=&null)&&&&&&&&&&&&&&cr.close();&&&&&&&&&&&&return&&&&&&&}&&&&}&span&style=&font-family:&'Comic&Sans&MS';&&&&&/span&&&
最后,别忘了在AndroidManifext.xml文件中添加访问权限&uses-permission android:name=&android.permission.WRITE_APN_SETTINGS& /&
& 亲们,从上面的代码中看出什么来了么,没错,通过APN的方式就是修改数据库,关闭APN其实就是给它随便匹配一个错误的APN。为什么说这种方法很生猛呢,当你通过这个方式关闭APN后,你在通过手机上的快捷开关开启移动数据网络时,是没效果的,也就是说开启不了,除非你再用同样的方法开启APN。
第二种方式:
& 这就奇怪了,关闭APN后,为什么再通过手机上的快捷开关(AppWidget)开启不了呢,这个问题就值得思考了,说明快捷开关其实并不是通过这个方式来开启和关闭移动网络的。道理很简单,想想那些快捷开关是怎么样根据开启和关闭移动网络,然后更换亮和暗的图标的呢(更新UI)。这里肯定会涉及到一个获取系统当前开启和关闭移动数据状态的问题。那到底是怎样获取的,是通过什么样的形式的?其实道理很简单,就是通过调用系统的getMobileDataState和setMobileData(我是这么知道它是调用到这个方法的呢?亲们,如果你有android手机,把它插到电脑上,然后开启已经搭建好的android开发环境的eclpise,打开logcat面板,相应地在你手机的快捷开关上开启和关闭移动网络,然后看看在logcat面板上出现什么了)。
& 既然知道是调用上面这两个方法了,我们是不是就可以直接调用这个两个方法实现了?NO,没这么简单,这个两个方法不能直接调用,必须通过反射机制调用(呵呵,没接触过java有关反射的知识的,或者是忘了的,可以去学习和温习一下)。
* 设置手机的移动数据
public static void setMobileData(Context pContext, boolean pBoolean) {
ConnectivityManager mConnectivityManager = (ConnectivityManager) pContext.getSystemService(Context.CONNECTIVITY_SERVICE);
Class ownerClass = mConnectivityManager.getClass();
Class[] argsClass = new Class[1];
argsClass[0] = boolean.
Method method = ownerClass.getMethod(&setMobileDataEnabled&, argsClass);
method.invoke(mConnectivityManager, pBoolean);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println(&移动数据设置错误: & + e.toString());
* 返回手机移动数据的状态
* @param pContext
* @param arg
默认填null
* @return true 连接 false 未连接
public static boolean getMobileDataState(Context pContext, Object[] arg) {
ConnectivityManager mConnectivityManager = (ConnectivityManager) pContext.getSystemService(Context.CONNECTIVITY_SERVICE);
Class ownerClass = mConnectivityManager.getClass();
Class[] argsClass =
if (arg != null) {
argsClass = new Class[1];
argsClass[0] = arg.getClass();
Method method = ownerClass.getMethod(&getMobileDataEnabled&, argsClass);
Boolean isOpen = (Boolean) method.invoke(mConnectivityManager, arg);
return isO
} catch (Exception e) {
// TODO: handle exception
System.out.println(&得到移动数据状态出错&);
最后,别忘了在AndroidMannifest.xml文件里添加访问权限&&uses-permission&android:name=&android.permission.ACCESS_NETWORK_STATE& /&,&
&uses-permission&android:name=&android.permission.CHANGE_NETWORK_STATE& /&
通过上面的代码可以知道,当开启移动网络时调用:
setMobileData(context,true),关闭调用setMobileData(context,false),通过getMobileDataStatus(context)方法返回的布尔值判断当移动数据网络前状态的开启和关闭。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:121420次
积分:1492
积分:1492
排名:千里之外
原创:28篇
转载:52篇
评论:24条
(3)(5)(6)(7)(10)(3)(3)(1)(1)(2)(1)(3)(1)(9)(13)(12)(4)(7)

我要回帖

更多关于 如何禁止访问某个网站 的文章

 

随机推荐