iOS wifi 路由器 连接

 

iOS wifi 路由器 连接 (3年前的代码,现在已经忘记啥意思了)

 

目的: 让智能家居设备 连接指定的wifi 

原理:在路由器的 管理页面模拟登录。。。

 

//
//  WifiSelectViewController.h
//  AirAppTest
//
//  Created by apple on 13-11-30.
//  Copyright (c) 2013年 apple. All rights reserved.
//

#import <UIKit/UIKit.h>
#import "ASIHTTPRequest.h"

#import "Wifi.h"
#import "Utils.h"

#import "LoginViewController.h"
#import "LYViewController.h"

@interface WifiSelectViewController : UIViewController<UITableViewDataSource, UITableViewDelegate,ASIHTTPRequestDelegate>{
   
    NSMutableArray* aryItems;
    
	BOOL _reloading;
    int prevItemCount;
}

@property (nonatomic,retain) UITableView *tableView;
@property (nonatomic,retain) UITableViewCell *tableViewCell;
@property (nonatomic,retain) NSMutableArray *aryItems;




@end

 

//
//  WifiSelectViewController.m
//  AirAppTest
//
//  Created by apple on 13-11-30.
//  Copyright (c) 2013年 apple. All rights reserved.
//

#import "WifiSelectViewController.h"
#import "Wifi.h"

@interface WifiSelectViewController ()

@end

@implementation WifiSelectViewController

@synthesize tableView ;
@synthesize tableViewCell;
@synthesize aryItems ;

Wifi *yyy;


#pragma mark - page 界面
#pragma  mark 初始化
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
    }
    return self;
}

#pragma  mark 加载界面
-(void)loadView{
    [self.navigationController setToolbarHidden:YES animated:YES];
    [self.navigationController setNavigationBarHidden:YES animated:NO];
    
    //代码实现界面
    //添加一个唯一父视图
    UIView *baseView = [[UIView alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    UIColor *bgColor =[UIColor colorWithPatternImage:[UIImage imageNamed:@"bg.png"]];
    baseView.backgroundColor = bgColor;
    self.view = baseView ;
    
    //蓝底面板
    //设置logo
    UIImageView *yfrdlogo =  [[UIImageView alloc] init];
    [yfrdlogo setFrame:CGRectMake(90,15,140,40)];
    UIImage *imgyfrdlogo =[Utils stretch:@"logo.png"];
    yfrdlogo.image= imgyfrdlogo;
    [self.view addSubview:yfrdlogo];
    //
    //    UIImage *buttonbg = [Utils stretch:@"login_midbutton_background_highlighted.png"];
    //    //login_midbutton_background_highlighted.9.png
    //
    //    UIImageView *buttonbgbg =  [[UIImageView alloc] init];
    //    [buttonbgbg setFrame:CGRectMake(10,65,300,25)];
    //    buttonbgbg.image= buttonbg;
    //    [self.view addSubview:buttonbgbg];
    
    //    UIButton *fhbutton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    //    [fhbutton setTitle:@"返回登陆页面" forState:UIControlStateNormal];
    //    [fhbutton setBackgroundImage:[UIImage imageNamed:@"history_nav_mid.png"] forState:UIControlStateNormal];
    //    [fhbutton setFrame:CGRectMake(10, 60, 100, 30)];
    //    [fhbutton addTarget:self
    //                 action:@selector(goback)
    //       forControlEvents:UIControlEventTouchUpInside];
    //    [self.view addSubview:fhbutton];
    //
    //    UIButton *sxbutton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    //    [sxbutton setTitle:@"刷新" forState:UIControlStateNormal];
    //    [sxbutton setBackgroundImage:[UIImage imageNamed:@"history_nav_mid.png"] forState:UIControlStateNormal];
    //    [sxbutton setFrame:CGRectMake(110, 60, 100, 30)];
    //    [sxbutton addTarget:self
    //                 action:@selector(showagain)
    //       forControlEvents:UIControlEventTouchUpInside];
    //    [self.view addSubview:sxbutton];
    
    
    
    UIImageView *bgimageview =  [[UIImageView alloc] init];
    [bgimageview setFrame:CGRectMake(0,55,320,30)];
    UIImage *bgimage =[Utils stretch:@"login_midbutton_background_highlighted.9.png"];
    bgimageview.image= bgimage;
    [self.view addSubview:bgimageview];
    
    
    UIButton *cqbutton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    [cqbutton setTitle:@"重启" forState:UIControlStateNormal];
    [cqbutton setTitleColor:[UIColor colorWithRed:.196 green:.309 blue:.521 alpha:1] forState:UIControlStateNormal];
    [cqbutton setFrame:CGRectMake(130,55,50,30)];
    [cqbutton addTarget:self
                 action:@selector(restart)
       forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:cqbutton];
    
    
    
    
    
    
    
    CGRect rect = [[UIScreen mainScreen] bounds];
    CGSize size = rect.size;
    CGFloat width = size.width;
    CGFloat height = size.height;
    
    
    UIImageView *bg2imageview =  [[UIImageView alloc] init];
    [bg2imageview setFrame:CGRectMake(0,85,320,30)];
    UIImage *bg2image =[Utils stretch:@"login_midbutton_background_highlighted.9.png"];
    bg2imageview.image= bg2image;
    [self.view addSubview:bg2imageview];
    
    //
    UILabel *yiqibianhao =  [[UILabel alloc] initWithFrame:CGRectMake(20,85,75,25)];
    yiqibianhao.text =@"WIFI信号";
    yiqibianhao.font = [UIFont systemFontOfSize:15];
    yiqibianhao.textAlignment = NSTextAlignmentCenter ;
    yiqibianhao.backgroundColor =  [UIColor clearColor];
    [self.view addSubview:yiqibianhao];
    //
    UILabel *wangluojieru  =  [[UILabel alloc] initWithFrame:CGRectMake(130,85,75,25)];
    wangluojieru.text =@"加密";
    wangluojieru.font = [UIFont systemFontOfSize:15];
    wangluojieru.textAlignment = NSTextAlignmentCenter ;
    wangluojieru.backgroundColor =  [UIColor clearColor];
    [self.view addSubview:wangluojieru];
    //
    UILabel *caozuo =  [[UILabel alloc] initWithFrame:CGRectMake(155,85,170,25)];
    caozuo.text =@"计算";
    caozuo.font = [UIFont systemFontOfSize:15];
    caozuo.textAlignment = NSTextAlignmentCenter ;
    //caozuo.backgroundColor =[UIColor colorWithPatternImage:[UIImage imageNamed:@"history_nav_mid.png"]];
    caozuo.backgroundColor =  [UIColor clearColor];
    [self.view addSubview:caozuo];
    
    
    
    UILabel *diLabelFrame =  [[UILabel alloc] init];
    [diLabelFrame setFrame:CGRectMake(0,height-40,width,40)];
    diLabelFrame.textAlignment = NSTextAlignmentCenter ;
    diLabelFrame.backgroundColor = [UIColor blackColor];
    [self.view addSubview:diLabelFrame];
    
    
    //返回按钮
    UIButton *telbutton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    [telbutton setFrame:CGRectMake(5, height-35, 30, 30)];
    [telbutton setBackgroundImage:[UIImage imageNamed:@"btn_back1.png"] forState:UIControlStateNormal];
    [telbutton addTarget:self
                  action:@selector(goback)
        forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:telbutton];
    
    
    //shuaixin按钮
    UIButton *sxbutton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    [sxbutton setFrame:CGRectMake(280, height-35, 30, 30)];
    [sxbutton setBackgroundImage:[UIImage imageNamed:@"refresh.png"] forState:UIControlStateNormal];
    [sxbutton addTarget:self
                 action:@selector(showagain)
       forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:sxbutton];
}

#pragma mark - 方法功能
#pragma mark  返回登陆界面
- (void)goback{
    
    [self.navigationController popViewControllerAnimated:NO];
}

#pragma mark  刷新wifi
-(void)showagain{
    
    
    //刷新等待标志
    [tooles showHUD:@"刷新WIFI……"];
     //连接网络
    NSString *urlstr = @"http://10.10.100.254/site_survey.html";
    NSURL *myurl = [NSURL URLWithString:urlstr];
    ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:myurl];
    //Basic认证
    [request setAuthenticationScheme:(NSString *)kCFHTTPAuthenticationSchemeBasic];
    [request setUseKeychainPersistence:YES];
    [request setUsername:@"admin"];
    [request setPassword:@"admin"];
    [request setDelegate:self];
    [request setDidFinishSelector:@selector(GetWifiResult:)];
    [request setDidFailSelector:@selector(GetWifiErr:)];
    [request startAsynchronous];

}

#pragma mark  跳转wifi界面并获取数据
- (void)GetWifiResult:(ASIHTTPRequest *)request{
    NSData *data =[request responseData];
    NSString *result = [[NSString alloc] initWithData:data  encoding:NSUTF8StringEncoding];
    NSArray *array = [result componentsSeparatedByString:@"selectedSSIDChange('"];
    NSMutableArray *listData = [[NSMutableArray alloc] init];
    for (int i=1; i<[array count]; i++) {
        NSString *tablex = [array objectAtIndex:i];
        NSArray *arrayx = [tablex componentsSeparatedByString:@"')"];
        
        NSString *tablen  = [arrayx objectAtIndex:0];
        
        NSArray *arrayn = [tablen componentsSeparatedByString:@"', '"];
        Wifi *xyz = [[Wifi alloc] init];
        xyz.SSID = [arrayn objectAtIndex:0];
        xyz.BSSID = [arrayn objectAtIndex:1];
        //        xyz.RSSI = [arrayn objectAtIndex:3];
        xyz.Channel = [arrayn objectAtIndex:2];
        xyz.Encryption = [[[arrayn objectAtIndex:3] componentsSeparatedByString:@"','"]objectAtIndex:0];
        xyz.Authentication = [[[arrayn objectAtIndex:3] componentsSeparatedByString:@"','"]objectAtIndex:1];
        //        xyz.NetworkType = [[[arrayn objectAtIndex:7] componentsSeparatedByString:@"</td> </tr>"]objectAtIndex:0];
        //      NSLog(@"---%@-%@-%@-%@-%@---",xyz.SSID,xyz.BSSID , xyz.Channel,xyz.Encryption,xyz.Authentication);
        [listData addObject: xyz];
    }
    //跳转wifi界面
    WifiSelectViewController *mainVC = [[WifiSelectViewController alloc] init];
    mainVC.aryItems = [[NSMutableArray alloc] initWithArray:listData];
    [self.navigationController pushViewController:mainVC animated:NO];
    //关闭等待标志
    [tooles removeHUD];
}

#pragma mark  跳转wifi界面失败
- (void) GetWifiErr:(ASIHTTPRequest *)request{
    [tooles removeHUD];
    [tooles MsgBox:@"网络连接状态差,再进行网络连接……"];
}

#pragma mark  wifi设置成功后重启路由
-(void)restart{
    [tooles showHUD:@"正在重启…"];
    
    NSString *urlstr = @"http://10.10.100.254/success_cn.html";
    NSURL *myurl = [NSURL URLWithString:urlstr];
    ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:myurl];
    //Basic认证
    [request setAuthenticationScheme:(NSString *)kCFHTTPAuthenticationSchemeBasic];
    [request setUseKeychainPersistence:YES];
    [request setUsername:@"admin"];
    [request setPassword:@"admin"];
    
    [request addRequestHeader:@"Accept" value:@"*/*"];
    [request addRequestHeader:@"Accept-Language" value:@"zh-CN"];
    [request addRequestHeader:@"Referer" value:@"http://10.10.100.254/do_cmd_cn.html"];
    [request addRequestHeader:@"User-Agent" value:@"Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0)"];
    [request addRequestHeader:@"Accept-Encoding" value:@"gzip, deflate"];
    [request addRequestHeader:@"Host" value:@"10.10.100.254"];
    [request addRequestHeader:@"Connection" value:@"Keep-Alive"];
    
    [request setPostValue:@"RESTART" forKey:@"HF_PROCESS_CMD"];
    
    [request setDelegate:self];
    [request setDidFinishSelector:@selector(GetPswRestartResult:)];
    [request setDidFailSelector:@selector(GetPswRestartErr:)];
    [request startAsynchronous];
}

- (void) GetPswRestartResult:(ASIHTTPRequest *)request{
    [tooles removeHUD];
    [tooles MsgBox:@"重启成功…"];
}

- (void) GetPswRestartErr:(ASIHTTPRequest *)request{
    [tooles removeHUD];
    [tooles MsgBox:@"网络连接状态差,请重新重启…"];
}


#pragma mark  点击tablecell 获取响应 得到实时数据
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"连接网络" message:@"输入密码" delegate:self cancelButtonTitle:@"取消" otherButtonTitles:@"连接",nil];
    alert.alertViewStyle = UIAlertViewStylePlainTextInput;
    yyy = [aryItems objectAtIndex:[indexPath row]];
    [alert show];
}

#pragma mark  获取alert界面的按钮动作
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{
    if (buttonIndex == 0) {
        NSLog(@"--------quexiao");
    }else if(buttonIndex == 1){
        UITextField *tf=[alertView textFieldAtIndex:0];
        
        NSString *urlstr = @"http://10.10.100.254/do_cmd_cn.html";
        NSURL *myurl = [NSURL URLWithString:urlstr];
        ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:myurl];
        //Basic认证
        [request setAuthenticationScheme:(NSString *)kCFHTTPAuthenticationSchemeBasic];
        [request setUseKeychainPersistence:YES];
        [request setUsername:@"admin"];
        [request setPassword:@"admin"];
        
        [request addRequestHeader:@"Accept" value:@"*/*"];
        [request addRequestHeader:@"Accept-Language" value:@"zh-CN"];
        [request addRequestHeader:@"Referer" value:@"http://10.10.100.254/wireless_cn.html"];
        [request addRequestHeader:@"User-Agent" value:@"Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0)"];
        [request addRequestHeader:@"Accept-Encoding" value:@"gzip, deflate"];
        [request addRequestHeader:@"Host" value:@"10.10.100.254"];
        [request addRequestHeader:@"Connection" value:@"Keep-Alive"];
        
        [request setPostValue:yyy.SSID forKey:@"sta_setting_ssid"];
        [request setPostValue:tf.text forKey:@"sta_setting_wpakey"];
        [request setPostValue:yyy.Encryption forKey:@"sta_setting_encry"];
        [request setPostValue:yyy.Authentication forKey:@"sta_setting_auth"];
        [request setPostValue:yyy.Authentication forKey:@"sta_setting_auth_sel"];
        [request setPostValue:yyy.Encryption forKey:@"sta_setting_encry_sel"];
        [request setPostValue:@"ASCII" forKey:@"sta_setting_type_sel"];
        [request setPostValue:@"DHCP" forKey:@"wan_setting_dhcp"];
        
        [request setDelegate:self];
        [request setDidFinishSelector:@selector(GetWifiPswResult:)];
        [request setDidFailSelector:@selector(GetWifiPswErr:)];
        [request startAsynchronous];
        
    }
}
- (void) GetWifiPswErr:(ASIHTTPRequest *)request{
    [tooles MsgBox:@"网络连接状态差,请重新设置…"];
}

- (void) GetWifiPswResult:(ASIHTTPRequest *)request{
    [tooles MsgBox:@"网络设置成功,请重启一下设置…"];
}

#pragma mark   - 加载tableview 加载界面
#pragma mark  获取table cell的个数
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
    return [aryItems count];
}

#pragma mark  显示cell的数据
-(UITableViewCell *) tableView:(UITableView *)tableView2 cellForRowAtIndexPath:(NSIndexPath *)indexPath{
    //创建cell
    static NSString *CellTableIdentifier = @"CellTabeIndentifier";
    UITableViewCell *cell = [tableView2 dequeueReusableCellWithIdentifier:CellTableIdentifier];
    if (cell == nil) {
        cell =[[UITableViewCell alloc]initWithStyle:UITableViewCellStyleValue2 reuseIdentifier:CellTableIdentifier];
        CGRect labelSSIDValueRect = CGRectMake(10, 0,110,44);
        UILabel *labelSSIDValue = [[UILabel alloc] initWithFrame:labelSSIDValueRect];
        labelSSIDValue.textAlignment = NSTextAlignmentLeft;
        labelSSIDValue.textColor =[UIColor colorWithRed:.196 green:.309 blue:.521 alpha:1];
        labelSSIDValue.tag = 601;
        labelSSIDValue.font = [UIFont italicSystemFontOfSize:10];
        [cell.contentView addSubview:labelSSIDValue];
        
        CGRect lableEncryptionRect = CGRectMake(150, 0,50,44);
        UILabel *lableEncryptionValue = [[UILabel alloc] initWithFrame:lableEncryptionRect];
        lableEncryptionValue.textAlignment = NSTextAlignmentLeft;
        lableEncryptionValue.textColor =[UIColor colorWithRed:.196 green:.309 blue:.521 alpha:1];
        lableEncryptionValue.tag = 602;
        lableEncryptionValue.font = [UIFont italicSystemFontOfSize:10];
        [cell.contentView addSubview:lableEncryptionValue];
        
        CGRect lableAuthenticationRect = CGRectMake(230, 0,40,44);
        UILabel *lableAuthenticationValue = [[UILabel alloc] initWithFrame:lableAuthenticationRect];
        lableAuthenticationValue.textAlignment = NSTextAlignmentLeft;
        lableAuthenticationValue.textColor =[UIColor colorWithRed:.196 green:.309 blue:.521 alpha:1];
        lableAuthenticationValue.tag = 603;
        lableAuthenticationValue.font = [UIFont italicSystemFontOfSize:10];
        [cell.contentView addSubview:lableAuthenticationValue];
     
        //加载向右的图标
        UIImageView *imagearrow = [[UIImageView alloc]initWithFrame:CGRectMake(280, 15, 10 ,10 )];
        imagearrow.image = [UIImage imageNamed:@"arrow.png"];
        [cell.contentView addSubview:imagearrow];
        
        UILabel *yiqidLabelFrame =  [[UILabel alloc] init];
        [yiqidLabelFrame setFrame:CGRectMake(0,43,320,1)];
        yiqidLabelFrame.textAlignment = NSTextAlignmentCenter ;
        yiqidLabelFrame.backgroundColor = [UIColor blackColor];
        [cell.contentView addSubview:yiqidLabelFrame];
        
    }
    
    
    if (indexPath.row % 2)
    {
        [cell setBackgroundColor:[UIColor colorWithRed:.8 green:.8 blue:1 alpha:1]];
    }else {
        [cell setBackgroundColor:[UIColor whiteColor]];
    }
    
    NSUInteger row = [indexPath row];
    Wifi *xxx= [aryItems objectAtIndex:row];
    //加载数据ssid数据
    UILabel *labelSSID = (UILabel *)[cell.contentView viewWithTag:601];
    labelSSID.text =xxx.SSID;
    UILabel *lableEncryption = (UILabel *)[cell.contentView viewWithTag:602];
    lableEncryption.text =xxx.Encryption;
    
    UILabel *lableAuthentication = (UILabel *)[cell.contentView viewWithTag:603];
    lableAuthentication.text =xxx.Authentication;
    
    return cell;
}

#pragma mark  设置cell的高度
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
    return  44.f;
}

#pragma mark  加载视图完成
- (void)viewDidLoad{
    [super viewDidLoad];
    
    //设置tableView高度
    CGRect rect = [[UIScreen mainScreen] bounds];
    CGSize size = rect.size;
    CGFloat width = size.width;
    CGFloat height = size.height;
    
    //加载tableView数据
    tableView = [[UITableView alloc] initWithFrame:CGRectMake(0,115, width, height - 135 )];
    tableView.backgroundColor = nil;
    tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
    self.tableView.delegate=self;
    self.tableView.dataSource=self;
    [self.view addSubview:tableView];
    
    //重新加载
    [tableView reloadData];
}

#pragma mark  警告提示
- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
}

@end

 

#import <Foundation/Foundation.h>

@interface Wifi : NSObject

@property(nonatomic,retain) NSString * SSID;
@property(nonatomic,retain) NSString * BSSID;
@property(nonatomic,retain) NSString * RSSI;
@property(nonatomic,retain) NSString * Channel;
@property(nonatomic,retain) NSString * Encryption;
@property(nonatomic,retain) NSString * Authentication;
@property(nonatomic,retain) NSString * NetworkType;
@property(nonatomic,retain) NSString * Password;


@end

 

 

 

 

 

 

 

 

 

捐助开发者

在兴趣的驱动下,写一个免费的东西,有欣喜,也还有汗水,希望你喜欢我的作品,同时也能支持一下。 当然,有钱捧个钱场(右上角的爱心标志,支持支付宝和PayPal捐助),没钱捧个人场,谢谢各位。



 
 
 谢谢您的赞助,我会做的更好!

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页
评论
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值