iOS编程之UnwindSegue的使用(Xcode6.3 iOS8.x Swift Storyboard)

1. 什么是UnwindSegue以及UnwindSegue的基本用法

1.1 UnwindSegue 的基本概念

关于UnwindSegue的基本概念可以在Apple的document中查看,同时,在stack overflow上也有关于它的详细例子。
以下是apple的ios开发文档中对UnwindSegue的说明。

Unwind segues give you a way to “unwind” the navigation stack back through push, modal, popover, and other types of segues. You use unwind segues to “go back” one or more steps in your navigation hierarchy. Unlike a normal segue, which create a new instance of their destination view controller and transitions to it, an unwind segue transitions to an existing view controller in your navigation hierarchy. Callbacks are provided to both the source and destination view controller before the transition begins. You can use these callbacks to pass data between the view controllers.

大意是:UnwindSegue可以让我们以push, modal, popover等其他segue的形式“放松地(自由地)”在导航堆列中跳转。我们用UnwindSegue“回跳”至navigation层级中得一个或多个界面前的一个界面。与一般的segue不同的是,UnwindSegue开创了一种新的(定义)目的视图控制器的方法并跳转到那个视图,当然,这个视图必须存在于navigation层级中。在跳转开始前,为源视图和目的视图均提供了Callback函数,我们可以通过这些Callback函数来传递数据。

从以上信息中我们可以看出,UnwindSegue和一般的Segue的最大区别是:

  1. UnwindSegue可以跳转到之前的一个或多个视图,其实也就是之前的任意一个视图,当然,这个视图必须在navigation堆列(stack)之中;而一般的Segue只能跳转到相邻的一个视图。
  2. UnwindSegue只能跳转到已经在navigation stack中存在的视图,还未创建的视图无法跳转;而一般的Segue则无此限制。

所以,一般的,在需要跳转到前两个或三个以上的视图时才需要用到UnwindSegue。

1.2 UnwindSegue的用法

如前文中提及的Apple的documentstack overflow中的例子,均有对UnwindSegue用法的详细解说,这里稍作总结。

使用UnwindSegue大概可分为以下几步:

    1. 在目标视图中创建一个action,以提供给源视图作为识别和接口。代码形如
      @IBAction func unwindToThisViewController(segue: UIStoryboardSegue) {
      }
      
    2. 在源视图中定义exit的关联项目,这个项目一般是一个按钮,方法是在exit图标上按右键,这时会弹出一个选择目标视图action的列表,这个action即是1中定义的action,点击对应的action后面的空心小圆圈,按住左键拖拽到按钮上释放,源视图中这个按钮到目标视图的UnwindSegue就建立起来了非常方便,如下图UnwindSegue-exit-button
    3. 当然,2中的那个项目不一定是个按钮,也可以是其它东西,也可以没有这个项目,比如,我们想在源视图控制器中做个判断,当满足一定条件时就进行UnwindSegue,那么这个时候的操作是,在exit上按住右键拖拽到视图控制器图标上释放,如下图UnwindSegue-exit-vc这时,这个UnwindSegue就创造出来了,但是,我们还需要指定这个UnwindSegue的id,然后我们在源视图控制器中就可以通过这个id来执行这个UnwindSegue,语法是:
      self.performSegueWithIdentifier("unwindtoDestinationVC", sender: self)

      其中unwindtoDestinationVC即是UnwindSegue的id。

2. 在UnwindSegue前执行一些任务的方法

有时候我们需要在UnwindSegue前进行一些操作,比如,从当前视图转出时,需要先将当前视图中的某些输入的内容存入数据库,然后再执行跳转。此时,就需要注意各种操作和语句执行的时序。

2.1 UnwindSegue与普通按钮关联

当exit与一个UnwindSegue和一个按钮绑定起来的时候,如1.2中2所表示的那样,这时候的执行顺序是这样的:

  1. 按钮被按下,向系统发送这一事件消息;
  2. 执行按钮的action;
  3. 执行prepareForSegue;
  4. 执行UnwindSegue。

2.2 UnwindSegue与toolbar上的item关联

在实践中发现,当exit与一个UnwindSegue和一个toolbar(底部toolbar/顶部navigation bar)按钮绑定起来的时候,执行的顺序和视图中的普通按钮有所不同,具体是这样的:

  1. 按钮被按下,向系统发送这一事件消息;
  2. 执行prepareForSegue;
  3. 执行UnwindSegue。

也即是说,该bar上的按钮所绑定的action并不会被执行,也就是说他们是segue优先的。那么如果非得在此之前执行一点儿任务怎么办呢?

可以这么做:

  1. 在目标视图控制器中创建一个unwindsegue;
  2. 将源视图的exit绑定到view上,而非一个具体的按钮;
  3. 定义bar按钮的action;
  4. 在bar按钮的action中先执行一定的任务,然后在合适的位置执行
    self.performSegueWithIdentifier("unwindtoDestinationVC", sender: self)

这样,即能实现在unwindsegue前完成一定的任务。


相关代码

 

Matlab中的日期和时间

1. Matlab中的三种日期/时间格式

1.1 字符串式(Date String)。

如“14-Apr-2015 10:54:00”,“2015-04-14 10:54”,“2015-04-14 10:54 AM”等等。

具体的格式可以自由定义,但是需要遵从Matlab中的相关规则。

规则1,日期/时间的各组成部分的符号标识(Symbolic Identifier)。

Symbolic Identifier Description Example
yyyy Year in full 1990, 2002
yy Year in two digits 90, 02
QQ Quarter year using letter Q and one digit Q1
mmmm Month using full name March, December
mmm Month using first three letters Mar, Dec
mm Month in two digits 03, 12
m Month using capitalized first letter M, D
dddd Day using full name Monday, Tuesday
ddd Day using first three letters Mon, Tue
dd Day in two digits 05, 20
d Day using capitalized first letter M, T
HH Hour in two digits
(no leading zeros when symbolic identifier AM or PM is used)
05, 5 AM
MM Minute in two digits 12, 02
SS Second in two digits 07, 59
FFF Millisecond in three digits 057
AM or PM AM or PM inserted in date string 3:45:02 PM

可以使用以上标识符自由定义显示出来的字符串式的日期。

规则2,Matlab中预定义的字符串式日期/时间格式,即Matlab中有现成的预定义的(predefined)显示格式,共33种,每一种以一个数字标识(Numeric Identifier)指示,如下表。

Numeric Identifier Date String Format Example
-1 (default) 'dd-mmm-yyyy HH:MM:SS' or 'dd-mmm-yyyy' if'HH:MM:SS'= 00:00:00 01-Mar-2000 15:45:17 or 01-Mar-2000
0 'dd-mmm-yyyy HH:MM:SS' 01-Mar-2000 15:45:17
1 'dd-mmm-yyyy' 01-Mar-2000
2 'mm/dd/yy' 03/01/00
3 'mmm' Mar
4 'm' M
5 'mm' 03
6 'mm/dd' 03/01
7 'dd' 01
8 'ddd' Wed
9 'd' W
10 'yyyy' 2000
11 'yy' 00
12 'mmmyy' Mar00
13 'HH:MM:SS' 15:45:17
14 'HH:MM:SS PM' 3:45:17 PM
15 'HH:MM' 15:45
16 'HH:MM PM' 3:45 PM
17 'QQ-YY' Q1-01
18 'QQ' Q1
19 'dd/mm' 01/03
20 'dd/mm/yy' 01/03/00
21 'mmm.dd,yyyy HH:MM:SS' Mar.01,2000 15:45:17
22 'mmm.dd,yyyy' Mar.01,2000
23 'mm/dd/yyyy' 03/01/2000
24 'dd/mm/yyyy' 01/03/2000
25 'yy/mm/dd' 00/03/01
26 'yyyy/mm/dd' 2000/03/01
27 'QQ-YYYY' Q1-2001
28 'mmmyyyy' Mar2000
29 'yyyy-mm-dd'
(ISO 8601)
2000-03-01
30 'yyyymmddTHHMMSS'
(ISO 8601)
20000301T154517
31 'yyyy-mm-dd HH:MM:SS' 2000-03-01 15:45:17

1.2 向量式(Date Vector)。

日期时间向量是由1*6个双精度型(double-precision)数值组成的一个行向量。其中除“秒”对应的元素可为分数外,其余值均为整型。时间表示为24小时制,无AM/PM表示信息。

日期时间向量中的各元素按如下顺序表示:

year month day hour minute second

如,10:45:07 AM on October 24, 2012 按向量式则为:

[2012 10 24 10 45 07]

1.3 连续日期数(Serial Date Number)。

连续日期数的意义是,一个代表了相对January 0, 0000的天数的数值。注意,该数值不可表示公元前,其负值并不表示公元前而表示相对公元10000-Jan-00前的天数。

比如,数值0表示公元0000年01月00日,数值1表示0000年01月01日,数值1.5表示0000年01月01日12:00:00,2015-04-14 12:00用连续日期数表示为:736068.5000。

当然使用这个数值还有一个问题,就是时区,该数值以ISO 8601下0时区为标准,如果需要转换为当地时间则要加上或减去响应的时区差对应的天数,比如,中国处于东八区,即UTC +08:00时区,那么在此数值上需要加上8/24=0.3333这样一个值,因为提前的八个小时相当于0.3333天。

2. Matlab中各种日期时间格式之间的转换

2.1 转换为连续日期数(to serial date number):datenum

datenum这个函数可以将其他两种形式的日期时间格式转换为连续日期数的形式,语法规则如下:

DateNumber = datenum(DateString)

这个函数将字符串式转换为连续日期数式

DateNumber = datenum(DateString,formatIn)

这个函数将字符串式转换为连续日期数式,同时通过”formatIn“这个变量明确了字符串式的具体形式,”formatIn“变量本身也是一个字符串,须对应1.1中的相关规则

DateNumber = datenum(DateVector)

这个函数将向量式转换为连续日期数式

DateNumber = datenum(Y,M,D)/datenum(Y,M,D,H,MN,S)

这个函数将向量式转换为连续日期数式。同时指定信息完整度,可见最少要完整到天

2.2 转换为向量式(to vector of components):datevec

datevec这个函数可以将其他两种形式的日期时间格式转换为向量式的形式,语法规则如下:

DateVector = datevec(DateNumber)

这个函数将连续日期数式转换为向量式

DateVector = datevec(DateString)

这个函数将字符串式转换为向量式

DateVector = datevec(DateString,formatIn)

这个函数将字符串式转换为向量式,同时通过”formatIn“这个变量明确了字符串式的具体形式

2.3 转换为字符串式(to string format):datestr

datestr这个函数可以将其他两种形式的日期时间格式转换为字符串式的形式,语法规则如下:

DateString = datestr(DateVector)

这个函数将向量式转换为字符串式

DateString = datestr(DateNumber)

这个函数将连续日期数式转换为字符串式

DateString = datestr(___,formatOut)

这个函数将其他形式转换为字符串式,同时通过”formatOut“变量指定转化后的字符串的具体形式,”formatIn“变量本身也是一个字符串,须对应1.1中的相关规则

DateString = datestr(DateStringIn)

这个函数将通过”DateStringIn“变量表示的一种字符串式转换为以”day-month-year hour:minute:second“形式表示的字符串式

DateString = datestr(___,’local’)

这个函数将其他形式转换为字符串式,同时以当前使用的系统日期时间显示标准来显示,如:

 >>datestr(now,'local')

ans =

14-4月-2015 12:39:38

 


本文结束。

如何通过ipage.com搭建个人网站

1. 为什么选择ipage.com

1.1 选择host时一般需要考虑的因素

首先我们google一下都有哪些website hosting的公司,分别具有哪些特性(features)和功能(functions)。

我们找到 2015 BEST Web Hosting Review REVIEWS AND COMPARISONS , Announcing the best web hosts of 2015 , Recommended web hosting offers for April 10, 2015 等等这些文章,然后逐一了解不同host的不同之处。

就一般搭建个人网站而言,在选择host的时候需要考虑这些因素:

  1. 价格(non-profit purpose…)
  2. 易用性(cpanel控制面板/one click install一键安装/ftp/SSH/phpadmin/….)
  3. 可用性(speed访问速度/disk space硬盘空间/database limit数据库容量限制/domain limit域名个数限制/…)
  4. 安全性(SSL/money back guarantee/…)

ipage.com主页很清楚地表达了以上为我们所重视的几个问题,如下图所示。

ipage-homepage

1.2 关于ipage.com的补充说明

  1. 价格。ipage的价格的确非常吸引人,如主页所示,只需每月2.25USD,即每年27USD约168RMB/Y。此外,其实ipage有个隐藏的coupon,得到此优惠券的方法是点击主页的sign up后进入下一个页面,页面载入完成后点击刷新,就会弹出一个“before you go …”这样的对话框,于是我们发现价格降至惊人的1.99USD/M,如下图所示。ipage-before-u-go
  2. 关于中文URL。这算是ipage的一个缺点,当然是对于中文环境用户来说。问题是:ipage不支持中文URL的解析,即如果网页路径中包含中文字符ipage会得到404 not found的错误。一般个人网站需要使用中文路径的情况是:将文章名添加在URL里时,URL便包含了中文字符,目的是为了SEO(搜索引擎优化)。当然这个URL是可以自己设定的,全设定为英文即可,另外,合适的英文关键字并不会比中文字符在SEO方面有明显劣势。

2. 注册ipage.com

点击上图coupon页面中的“Sign Up Now”之后,第一步是选择一个域名,如下图所示。

ipage-select-domain

可以选择注册一个新的域名“Register a new domain”,这域名个第一年的注册费用包含在此次开通ipage账号付款之中,即免费赠送约9.9USD的首年域名注册费用,在下方的文本框中输入想要的域名,点击“check availability”检查域名是否可用。也可以使用自己已拥有的域名,同样将其输入在文本框中。注意这里可以不输入域名最后的“.com”等内容,否则注册后的账号会是“domaincom”而不是简洁的“domain”。

下一步是输入付款信息,如下图所示。

ipage-billing-info

付款方法有信用卡和paypal两种,上图中的价格是未使用coupon的价格。付款完成后ipage的账号就可以使用了。在ipage.com的主页右上角点击“Sign In”就可进入管理界面。

3. ipage.com的cpanel管理面板和文件路径

3.1 cpanel管理面板

登录进入ipage后进入cpanel管理面板,如下图所示,非常直观。

ipage-control-panel

ipage-control-panel-2

cpanel共分为7个部分。

  1. My,即是常用选项。
  2. Website,搭建网站相关的选项。
  3. Email,包括了email的设定管理选项。
  4. Domain,域名管理的选项。
  5. Marketing,市场扩展的选项,包括主要搜索引擎和社交网站的广告等。
  6. Additional,其他选项。
  7. Account,账户设定如密码修改/支付方式变更等等。

此外,在该页面右下方,还可以看到“System Settings”信息,包括常用信息的显示,如网站ip/域名解析服务器/ftp路径/邮箱服务器等等,如下图所示。

ipage-system-settings

3.2 域名和文件路径的对应

这里需要说明的一点是ipage的域名和文件路径的问题。

由于ipage不限制绑定的域名的数量,也就是说,可以将多个网站放到一个ipage账户下,这一点非常超值(比如之前用的bluehost的基本套餐每月3.99USD只能绑定一个域名),但同时我们需要理解域名和文件路径的对应关系。

在cpanel的域名管理中心“Domain Central”中,可以控制域名的绑定和制定路径,界面如下图。

ipage-domain-center

图中的这个域名即是本站域名,同时,这个域名也是通过ipage申请注册的域名,所以很多选项可以在这个页面上修改。其中,制定这个域名所对应的文件路径的选项为“Pointers”,点击后打开如下页面。

ipage-domain-pointer

一般在左侧下拉选项中选择“Subdirectory”即子目录,并在文本框中输入“/drjxu”,Linux系统中,根目录以“/”表示,所以我们的这个域名所对应的路径就是“drjxu”子目录了,这样每一个域名就对应一个单独的文件夹,非常便于管理。然后在cpanel的“File Manager”工具中我们就可以非常直观地看出对应关系,如下图。

ipage-file-manager

“drjxu”这个目录已被创建在“root”根目录中。当然,我们也可以自由在“File Manager”创建或删除文件夹,然后再在“DomainCenral”中制定相互关系。甚至我们可以创建没有域名对应的文件夹,比如上图中的“backup”文件夹,我们可以把安装文件/备份等等数据储存在这里,反正ipage不限制储存空间。

域名和文件夹的名称可以不一致,当然建议保持一致易于管理。

4. 通过WordPress搭建个人网站

4.1 关于WordPress

可以查看WordPress的wiki页面和WordPress主页了解其信息。

WordPress是一个以PHP和MySQL为平台的自由开源的博客软件和内容管理系统。WordPress具有插件架构和模板系统。WordPress是目前因特网上最流行的博客系统。

WordPress由于使用较为广泛,教程很多,学习资源丰富,非常容易上手,所以选择其搭建个人网站。

4.2 WordPress的安装

一般安装WordPress的方法主要有两种,一是通过host提供的一键安装,二是通过ftp上传WordPress安装文件至服务器后安装。前者安装步骤简单快捷,后者则更具灵活性和可自定义选项。这里只介绍第二种方法。

首先,需要获得WordPress的安装文件。

WordPress主页点击页面中的“Download WordPress”按钮,进入下载页面如下图,点击“Download WordPress 4.1.1”.

wordpress-download

第二步,解压上传WordPress的安装文件。

下载的压缩包解压后会得到一个wordpress的文件夹,需要将其中的所有内容上传至服务器。wordpress文件夹文件列表如下图。

wordpress-files

将文件上传可以在cpanel的file management工具页面中进行,但这种方法上传速度慢且不稳定,所以一般我们选择通过ftp软件进行。一般选择“FileZilla FTP Client”这个软件来上传文件到服务器,安装好这个软件后我们需要知道连接ipage服务器所需要的账号和密码,这一信息可以在cpanel的FTP选项卡中查看。如下图。

ipage-ftp

上图显示了FTP的账号共有两种,一种为“Master FTP Account”即主FTP账号,一种为“Additional FTP Account”即附加FTP账号。其中主FTP账号和ipage账号一样,附加FTP账号则可自由创建,一般为每一个域名创建一个单独的附加FTP账号,分别单独管理。创建附加FTP账号的方法如下图。

ipage-create-ftp-account

在下方的“Create New FTP Account”栏目中输入相应信息即可,点击“Create FTP User”即可创建成功。需要注意的是其中“FTP(Home)Directory”的填写,如前文所述“/”表示根目录,如果我们需要一个专门连接到“drjxu”主页也即“drjxu”子目录的FTP账号则这里需要填写“/drjxu”。

然后我们打开FileZilla FTP Client软件,填写主机/用户名/密码点击快速连接即可,如下图。

filezilla-connect-ftp

如果我们用附加账号连接,则软件中的远程站点根目录则为该域名对应的子目录;如果用主账号连接,则软件中的远程站点根目录则为实际的根目录。这一点一定要搞清楚。

同时,还需注意一个问题。那就是,如果想把WordPress安装在域名子目录下的一个子目录中(这种情况一般是因为需要在这个域名下安装多个程序,比如除了WordPress之外还想安装一个bbs的论坛程序),则更需注意文件的上传路径。本站即是将WordPress安装在域名子目录下的一个子目录(wpmain)中,如下图。

filezilla-file-upload

 

第三步,准备数据库。

安装文件就绪后,我们还需为WordPress配置数据库。

方法是从cpanel进入“MySQL”,如下图所示。

ipage-mysql

点击创建数据库按钮,输入数据库名称,并创建可操作此数据库的用户,同时记下“Sever Name”,这些信息在安装WordPress过程中会被需要。

第四步,安装WordPress。

安装文件上传完成/且配置好数据库后,即可开始安装操作。

安装方法是在浏览器地址栏输入WordPress的地址,比如,以本站为例,需输入“drjxu.com/wpmain”,因为WordPress的安装文件在“/drjxu/wpmain”子目录下,其中“drjxu.com”定位置“/drjxu”,“/wpmain”则为最终子目录。

由于WordPress未被安装,所以安装自动启动,第一个页面是语言选择,如下图。

wp-install-1

可以选择中文。点击“继续”进入第二个页面,提示信息,如下图。

wp-install-2

由于我们此前已经准备好数据库的相关信息,点击“现在开始即可”。进入第三个页面,如下图。

wp-install-3

输入相关信息,点击“提交”。如果输入的信息无误,连接数据库成功,则进入第四个页面,如下图。

wp-install-4

点击“运行安装”,进入第五个页面,“欢迎使用著名的WordPress五分钟安装程序!….”,如下图。

wp-install-5

 

填写好相关的信息,注意这里的用户名和密码不是数据库的,而是管理WordPress的用户和密码。 点击“安装WordPress”完成安装。进入第六个页面,贱贱的“您是否还沉浸在愉悦的安装过程中?很遗憾,一切皆已完成! :)”出现表示已安装完成,如下图。

wp-install-6

 

4.3 初步使用WordPress

点击上图中的“登录”,即进入WordPress的登录界面。如下图。

wp-install-7

 

输入第五个页面中创建的用户名和密码即可进入WordPress后台管理界面,“Dashboard”。如下图。

wp-dashboard

 

由于我们将WordPress安装在了一个子目录下,所以访问我们的网站的时候需要在URL中加入子目录的名称,比如本站,需要通过“drjxu.com/wpmain”来访问,非常不方便,那么是否可以只输入“drjxu.com”就定位到WordPress呢?当然可以,可以参考WordPress官方的说明文档

这里介绍具体的操作步骤。

首先,修改WordPress设置。

我们通过“drjxu.com/wpmain/wp-admin”进入Dashboard,如上图,在左侧菜单里选择“设置”->“常规”,进入下图所示页面。

wp-sub-dir

在“WordPress地址(URL)”中输入定位至WordPress的完整URL,在“站点地址(URL)”中输入域名URL,点击下方的保存。

第二,增加域名目录下的index.php文件。

还需在域名目录即“/drjxu”目录下增加一个index.php文件,该文件可在File Manager工具中完成添加也可在本地编辑好后通过ftp软件上传至合适位置。该index.php文件内容如下。

<?php
/**
* Front to the WordPress application. This file doesn't do anything, but loads
* wp-blog-header.php which does and tells WordPress to load the theme.
*
* @package WordPress
*/

/**
* Tells WordPress to load the WordPress theme and output it.
*
* @var bool
*/
define('WP_USE_THEMES', true);

/** Loads the WordPress Environment and Template */
require( dirname( __FILE__ ) . '/wpmain/wp-blog-header.php' ); //wpmain为WordPress的安装子目录
?>

 


 

至此,以ipage.com作为host搭建WordPress介绍完成。

如何通过godaddy.com注册域名

1. godaddy和domain

Go Daddy 很多朋友称之为“狗爹”,是一家提供域名注册和互联网主机服务的美国公司,是目前全球最大的域名注册商。据多家监测机构显示,放置在Go Daddy上的网站数量已经位居全球第一位。Go Daddy同时提供独立IP,SSL证书。

另外,简单介绍一下域名

 域名(英语:Domain Name),又称网域、网域名称,是由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位(有时也指地理位置)。DNS(网域名称系统,Domain Name System,有时也简称为域名)是因特网的一项核心服务,它作为可以将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网,而不用去记住能够被机器直接读取的IP地址数串。

例如,www.wikipedia.org作为一个域名,便和IP地址208.80.152.2相对应。DNS就像是一个自动的电话号码簿,我们可以直接拨打wikipedia的名字来代替电话号码(IP地址)。DNS在我们直接调用网站的名字以后就会将像www.wikipedia.org一样便于人类使用的名字转化成像208.80.152.2一样便于机器识别的IP地址。[1]

所以,简单地说,围绕域名需要完成两件事情:注册和解析。一般地这两个功能在诸如godaddy这样的注册商那里被一并完成。

域名的注册

域名的注册遵循先申请先注册为原则,管理认证机构对申请企业提出的域名是否违反了第三方的权利不进行任何实质性审查。在中华网库每一个域名的注册都是独一无二、不可重复的。因此在网络上域名是一种相对有限的资源,它的价值将随着注册企业的增多而逐步为人们所重视。

在新的经济环境下,域名所具有的商业意义已远远大于其技术意义,而成为企业在新的科学技术条件下参与国际市场竞争的重要手段 ,它不仅代表了企业在网络上的独有的位置 ,也是企业的产品、服务范围、形象、商誉等的综合体现,是企业无形资产的一部分。

最为通用的域名.com/.net的管理机构是ICANN,ICANN(The Internet Corporation for Assigned Names and Numbers)互联网名称与数字地址分配机构是一个非营利性的国际组织,成立于1998年10月,是一个集合了全球网络界商业、技术及学术各领域专家的非营利性国际组织,负责互联网协议(IP)地址的空间分配、协议标识符的指派、通用顶级域名(gTLD)以及国家和地区顶级域名(ccTLD)系统的管理、以及根服务器系统的管理。这些服务最初是在美国政府合同下由互联网号码分配当局(Internet Assigned Numbers Authority,IANA)以及其它一些组织提供。ICANN行使IANA的职能。

但ICANN并不负责域名注册,ICANN只是管理其授权的域名注册查询商,在ICANN和注册商之间还有一个Verisign公司,注册商相当于从Verisign公司批发域名,但管理注册商的机构是ICANN。

所以我们在godaddy注册域名的时候会向ICANN缴纳约1$/个域名的管理费。

域名的解析

域名解析就是域名到IP地址的转换过程。IP地址是网路上标识您站点的数字地址,为了简单好记,采用域名来代替ip地址标识站点地址。域名的解析工作由DNS服务器完成。域名解析记录可以通过nslookup在窗口界面查询,也可以通过外部网站进行查询。

A记录设置:

A(Address)记录是用来指定主机名(或域名)对应的IP地址记录。用户可以将该域名下的网站服务器指向到自己的web server上。同时也可以设置您域名的二级域名。

MX记录设置:

MX记录是邮件路由记录,用户可以将该域名下的邮件服务器指向到自己的mail server上,然后即可自行操控所有的邮箱设置。您只需在线填写您服务器的IP地址,即可将您域名下的邮件全部转到您自己设定相应的邮件服务器上。

CNAME记录设置:

CNAME记录是别名记录。这种记录允许您将多个名字映射到同一台计算机。通常用于同时提供WWW和MAIL服务的计算机。例如,有一台计算机名为“host.abc.com”(A记录)。它同时提供WWW和MAIL服务,为了便于用户访问服务。可以为该计算机设置两个别名(CNAME):WWW和MAIL。这两个别名的全称就是www.abc.com和“mail.abc.com”。实际上他们都指向“host.abc.com”。

Wildcard MX记录设置:

Wildcard MX记录是泛邮件路由记录(姑且称之),功能上比较接近MX记录,除此之外它亦可以用子域名来收邮件。当然,备描述的主机本身必须具备收邮件的功能。

2. godaddy域名注册的流程

以下用大量图片展示通过godaddy注册域名的完整流程和详细方法。

注册godaddy

首先我们需要注册一个godaddy的账号。打开godaddy.com主页,点击右上角的“Sign In/Register”,看到如下图的画面,点击“Create My Account”。

godaddy-register

之后会弹出如下窗体,填写相应信息即可。

godaddy-create-account

点击“Create Account”创建账号。

登入godaddy.com

在主页Sign In栏目中填写账号和密码,点击”SIGN IN”就可登入godaddy.com。

godaddy-sign-in

个人中心

登入godaddy.com后进入个人中心,可以看到已购商品为空,如下图。

godaddy-my-account-ini

域名检索

之后我们就可以检索自己想要注册的域名了,方法是点击上方的“All Products”,在“Domains”列表中点击“Doamin Search”标签,如下图所示。

godaddy-all-products

接下来的页面如下图,在输入框中输入想要注册的域名,这里以“exampletestmaster.com”为例,点击“SEARCH”按钮即可。

godaddy-domain-search

检索结果会在跳转后的页面中显示出来,如下图所示。

godaddy-domain-search-result

幸运的话该域名没有被注册,页面中会提示“YES!YOUR DOMAIN IS AVAILABLE”,当然,此前我们肯定事先在who.is网站上查看了我们想要的域名是否可注册了,然后我们点击“.com”域名后的“SELECT”按钮,再点击“CONTINUE TO CART”按钮进入购物车。

godaddy-domain-selected

如果想要的域名已经被注册,那么我们需要重新检索,godaddy也会给出一些建议的域名供选择。具体的策略可自行google。

付款流程

当我们选定心仪的域名后,就可以进入付款流程了,点击如上图中所示的“CONTINUE TO CART”即会进入如下图所示的页面。

godaddy-in-cart

首先,是商品(即域名)的情况,可以选择年限,最后产生不同的价格在右侧显示,例中使用币种的是日元,换算后价格大概是:第一年8.3美元(50RMB),此后每年15.6美元(100RMB)左右。当然币种可以自由选择,具体要看信用卡是否支持。

点击“Proceed to Checkout”进入付款流程。

跳转后的页面上方方会显示付款人信息栏目,需要填写完整,如下图所示。

godaddy-billing-info

该页面下方是付款方法的栏目,也需填写完整,如下图所示。

godaddy-payment-info

Godaddy的支付方式如上图所示,可以通过信用卡/paypal/银联/moneybookers等手段支付,也就是说国内的银联卡是可以直接支付的。

点击“Continue”以继续完成付款。

3. godaddy的域名管理

在个人中心中选择域名“Domains”即可显示已购的域名列表,如下图。

godaddy-domain-list

点击一个域名,即可进入该域名的详细信息和设定界面,如下图。

godaddy-domain-details

一般地,如果我们使用其他主机提供商的话,我们需要修改“Nameservers”信息为主机提供商的“Nameservers”。

 


至此,通过godaddy.com注册/解析/管理域名的方法介绍完毕。