#include <iostream>
#include<fstream>
#include <ctime>
#include <cmath>
#include <stdlibh>
#include<stdioh> //时间 //文件
#include <string>
#define random(x)(rand()%x)
using namespace std;
void thunder(int Dif,int Row,int Column,char USer)
{
int r,c,alls[22][22],backstage[22][22]={0};
srand((int)time(0));
for(r=1;r<=Row;r++) // 生成alls(0~1)1是雷
{
for(c=1;c<=Column;c++)
{
if(random(6)<1) {alls[r][c]=1;} else{alls[r][c]=0;};
}
};
for(r=0;r<=Row+1;r++) //生成 backstage(正确答案)
{
for(int c=0;c<=Column+1;c++)
{
if(alls[r][c]==1)
{
(int)backstage[r][c]=''; //将1变为 代表雷
}
else
{
for(int i=r-1;i<=r+1;i++) //将0变为数字 (代表周围雷数)
for(int j=c-1;j<=c+1;j++)
{
if(alls[i][j]!=alls[r][c]&&alls[i][j]==1){backstage[r][c]++;};
}
}; //else 结束
}; // for 结束
}; // for 结束
cout<<"======================================================"<<endl;
char surface[22][22]; //生成surface(用户界面)
for(r=0;r<22;r++) //全部为零
for(c=0;c<22;c++)
{
surface[r][c]='0';
}
for(r=1;r<=Row;r++) //中间化 # 形成0包围#的形式 (通过数 #-->(||数字) 的个数 赢的时候停止循环)
for(c=1;c<=Column;c++)
{
surface[r][c]='#';
}
for(r=1;r<=Row;r++) //输出 surface 界面 便于检查
{
for(c=1;c<=Column;c++) {cout<<" "<<surface[r][c];};
cout<<endl;
};
cout<<"请按格式输入"<<endl
<<"前两个数字为坐标,最后一个数字“1”表示此位置为雷,“0”则表示不是。"<<endl
<<"如:1 3 1 表示一行三列是雷;2 4 0 表示二行四列不是雷"<<endl
<<"提示:当数字周围雷都被扫出时,可再次按要求输入此位置,可得到周围数字。"<<endl;
long i=10000000L; //计算时间开始
clock_t start,finish;
double duration;
start=clock();
while(i--); //计算时间开始
int num=RowColumn; //计算#号个数
while(num!=0) //控制 是否点完所有位置
{
int x,y,judge;
cin>>x>>y>>judge;
if(alls[x][y]!=judge)
{
cout<<"you lose!!!"<<endl;
cout<<"The answer is:"<<endl;
for(r=1;r<=Row;r++) //输了 输出backstage 显示正确答案
{
for(int c=1;c<=Column;c++)
{
cout<<" "<<(char)(backstage[r][c]==42backstage[r][c]:backstage[r][c]+'0'); //输出backstage
}
cout<<endl;
}
break;
}
else
{
if(alls[x][y]==1) {if(surface[x][y]=='#'){num--;}surface[x][y]='@'; } // 雷 判断正确 显示“@”;数“#”
else
{
if(backstage[x][y]!=0) // 数字 判断正确 显示数字
{
if(surface[x][y]=='#'){num--; surface[x][y]=backstage[x][y]+'0'; } // 数“#”
else
{
int lei_num=0;
for(int i=x-1;i<=x+1;i++) //数 数字周围 雷的个数
for(int j=y-1;j<=y+1;j++)
{
if(surface[i][j]=='@')
lei_num++;
}
if(backstage[x][y]==lei_num) // 看数字周围雷是否全部扫出 提示 显示数字周围
{
for(int i=x-1;i<=x+1;i++)
for(int j=y-1;j<=y+1;j++)
if(surface[i][j]=='#') //数“#”
{
surface[i][j]=backstage[i][j]+'0';
num--;
}
}
}
}
else // 数字为零时 显示零周围的零
{
if(surface[x][y]=='#'){num--;}; //数“#”
surface[x][y]=backstage[x][y]+'0';
for(int i=x-1;i<=x+1;i++) // 显示零周围的数字
for(int j=y-1;j<=y+1;j++)
if(surface[i][j]=='#') // 避免 死循环
{
surface[i][j]=backstage[i][j]+'0';
num--; //数“#”
}
for(int k=0;k<20;k++) //最多20层零 (点出最边上的零)
{
for (int R=1;R<=Row;R++) //检查所有零
for(int C=1;C<=Column;C++) //再次显示零周围的数字
{
if(surface[R][C]=='0')
{
for(int i=R-1;i<=R+1;i++)
for(int j=C-1;j<=C+1;j++)
{
if(surface[i][j]=='#') // 避免 死循环 数“#”
{
surface[i][j]=backstage[i][j]+'0';
num--;
}
}
}
} //匹配for 内
} //匹配 for 外
}//匹配else
}//匹配else
}//匹配els
cout<<endl;
cout<<"======================================================"<<endl;
for(r=1;r<=Row;r++) //输出界面(已修改)
{
for(c=1;c<=Column;c++) {cout<<" "<<surface[r][c];};
cout<<endl;
};
} //匹配while
finish=clock(); //计算时间结束
duration=(double)(finish-start)/CLOCKS_PER_SEC; //时间变量
if(num==0) //所有
{
cout<<" You win! Congratulations!! "<<endl;
cout<<" Your time is: "<<duration<<endl;
if(Dif==1) //读取 简单扫雷 的存储文件
{
string Name;
string name[6];
double Time,rang;
double times[6];
int i=0;
ifstream inf("扫雷 简单txt");
for(i=0;i<5;i++) //文件中信息导入到数组里
{
inf>>Name;inf>>rang>>Time;
name[i]=Name;
times[i]=Time;
}
infclose();
name[5]=USer; //本轮玩家信息
times[5]=duration;
double t1=0;
string t2;
for(int j=0;j<5;j++) //冒泡排序法
{
for(i=0;i<5-j;i++)
{
if(times[i]>times[i+1])
{
t1=times[i];
times[i]=times[i+1];
times[i+1]=t1;
t2=name[i];
name[i]=name[i+1];
name[i+1]=t2;
}
}
}
ofstream outf("扫雷 简单txt");
for(i=0;i<5;i++) //将前五名玩家信息存储到文件中
{
cout<<name[i]<<" "<<i+1<<" "<<times[i]<<endl;
outf<<name[i]<<" "<<i+1<<" "<<times[i]<<endl;
}
outfclose();
}
if(Dif==2) //读取 一般扫雷 的存储文件
{
string Name;
string name[6];
double Time,rang;
double times[6];
int i=0;
ifstream inf("扫雷 一般txt");
for(i=0;i<5;i++) //文件中信息导入到数组里
{
inf>>Name;inf>>rang>>Time;
name[i]=Name;
times[i]=Time;
}
infclose();
name[5]=USer; //本轮玩家信息
times[5]=duration;
double t1=0;
string t2;
for(int j=0;j<5;j++) //冒泡排序法
{
for(i=0;i<5-j;i++)
{
if(times[i]>times[i+1])
{
t1=times[i];
times[i]=times[i+1];
times[i+1]=t1;
t2=name[i];
name[i]=name[i+1];
name[i+1]=t2;
}
}
}
ofstream outf("扫雷 一般txt");
for(i=0;i<5;i++) //将前五名玩家信息存储到文件中 并输出
{
cout<<name[i]<<" "<<i+1<<" "<<times[i]<<endl;
outf<<name[i]<<" "<<i+1<<" "<<times[i]<<endl;
}
outfclose();
}
if(Dif==3) //读取 困难扫雷 的存储文件
{
string Name;
string name[6];
double Time,rang;
double times[6];
int i=0;
ifstream inf("扫雷 困难txt");
for(i=0;i<5;i++) //文件中信息导入到数组里
{
inf>>Name;inf>>rang>>Time;
name[i]=Name;
times[i]=Time;
}
infclose();
name[5]=USer; //本轮玩家信息
times[5]=duration;
double t1=0;
string t2;
for(int j=0;j<5;j++) //冒泡排序法
{
for(i=0;i<5-j;i++)
{
if(times[i]>times[i+1])
{
t1=times[i];
times[i]=times[i+1];
times[i+1]=t1;
t2=name[i];
name[i]=name[i+1];
name[i+1]=t2;
}
}
}
ofstream outf("扫雷 困难txt");
for(i=0;i<5;i++) //将前五名玩家信息存储到文件中
{
cout<<name[i]<<" "<<i+1<<" "<<times[i]<<endl;
outf<<name[i]<<" "<<i+1<<" "<<times[i]<<endl;
}
outfclose();
}
}
}
void scale(int dif,char User) //选择难度
{
int row,column;
if(dif==1) {row=3;column=3;}
if(dif==2) {row=7;column=7;}
if(dif==3) {row=10;column=10;}
cout<<"The scale is: "<<row<<""<<column<<endl;
thunder(dif,row,column,User);
};
int main()
{
int Continue=1;
int difficulty;
char user[10];
cout<<" Welcom to the game! "<<endl
<<" 请输入用户名! "<<endl;
cin>>user;
while(Continue==1)
{
cout<<"=============================================="<<endl
<<" 请选择难度! "<<endl
<<" 简单——1 "<<endl
<<" 一般——2 "<<endl
<<" 困难——3 "<<endl;
cin>>difficulty;
scale(difficulty,user);
cout<<"继续游戏——1 结束游戏——0"<<endl;
cin>>Continue;
}
return 0;
}
扫雷小游戏,自己编的代码
SriritaJensen
SriritaJensen(Rita、施莉达)1981年10月27日出生,泰国和丹麦的混血儿,模特、演员。她出演了《争分夺秒》、《从来不想爱》、《月光女神》等电视剧。
中文名:施莉达
外文名:SriritaJensen(Rita)
国籍:泰国
星座:天蝎座
身高:173cm
出生日期:1981年10月27日
职业:模特、演员
毕业院校:曼谷大学
代表作品:争分夺秒、从来不想爱
血统:丹麦(父)泰国(母)混血
演艺经历
2004年,参演**《PunXDekSudKhua》。
2006年,参演电视剧《月光女神》。
主要作品
**
999-9999Tor-Tid-Tay(withHugoJulajak)(2002)
PunXDekSudKhua(withBankClash)(2004)
电视剧
NamSaiJaiJing
合作演员:AonSarawutMarttong
DedKruPanMai
(Ch32003)
合作演员:TangSaksitTangtong
争分夺秒
泰名:KarmFahChernKom
从来不想爱
泰名:KorWaJaMaiRuk(Ch32004)
合作演员:KongSaharatSangkapricha
月光女神
泰名:JunEuyJunJao
(Ch32006)
合作演员:KongSaharatSangkapricha
Rita演了《月光项链》,《月光皇冠》,《月光女神》月光三部曲。
《月光女神》是鬼片,中字全。
月光项链
泰名:SroySaengJan
(Ch32007)
主演:RomePatchataNampan——Putti/Pumma
RitaSriritaJensen——Duentemduang/Najan
ChaiChatayodomHiranyatinthi——Kirana
JoyRinlaneeSripen——Melanee/Maneejan
七里香
泰名:KlinKaewKlangJai
(Ch32007)
主演:RomePatchataNampan——Asanee
RitaSriritaJensen——Prapai
AeIsariyaSaisanan——Apo
SinjaiPlengpanich——Jitta
未婚女子的诡计
泰名:YuttakarnHukKarnThong
(Ch32008)
主演:SmartKrissadaPornweroj——Krit
RitaSriritaJensen——Dao
RomePatchataNampan——Keeyrin
NoonSirapanWattanajinda——Nam
爱的预言
泰名:GaeRoyRuk
(Ch32008)
主演:RomePatchataNampan——Songrob
RitaSriritaJensen——Chomduen
BoyPidsanuNimsakul——Songton
WiragarnSeneetunti(Maprang)--JillieJennifer
MimUmmarapasJulkrasien--AnnieDiana
KaoJirayuLaongmanee--Plianfah
天魔之墓
泰名:SusarnPhutesuan
(Ch32009)
主演:TyeNattapolLeeyawanich——Toednarong
RitaSriritaJensen——Ninbhatra
黑暗城堡
泰名:PrasartMeud
(Ch32009)
主演:NatNattaratMorris——ParotParotruk
RitaSriritaJensen——KhunYingUmarungseeIssara/KrooUma
BoyPidsanuNimsakul——RawisakTaywun
WiragarnSeneetunti——Suleemas
ChalisaBoonkrongsab(Ming)--Kanya
GoGosinRatchakrome--Wisanu
月光皇冠
泰名:MongkutSaengJun
(Ch32009)
主演:AndrewGregson——Theekayu
RitaSriritaJensen——Theekayu
NotVoaritFuangarome——Manasing
JoyRinlaneeDrijanya——Kanypak
璀璨恋痕
泰名:WoonWaiSabaiDee
(Ch32010)
主演:WitayaWasukraipaisarn(Aun)——San
RitaSriritaJensen——Nigi
JajaPrimrata——Ling
JaneJensuda——Beng
BeamSaranyu——Sima
勇士之心
泰名:SiraPatcharaDuangJaiNakRope
(Ch32010)
主演:SornramTappituk(Num)——CharacterName
RitaSriritaJensen——CharacterName
ChaiChatayodomHiranyatithi——CharacterName
秘密花园
泰名:PimMala
(Ch32011)
主演:Ummatichartchumnanon——Priew
NamchaCheranutYusanonda——Namnuan
PloychermarnBoonyasak——PimMala
RitaSriritaJensen——天使Rampa
萦孽
泰文名:Buang
又名:圈套(暂译)
(Ch32011年5月开拍)
合作演员:RomePatchataNampan
《萦孽》是Rome和Rita主演的第五部电视剧,正在拍摄中,是年代悬疑剧。
WianGoomGarm
(Ch3未开拍)
主演:RomePatchataNampan--PhyaMungrai
RitaSriritaJensen--AuaViangchai
AonSarawutMarttong--Ai-Fah
NoonSirapanWattanajinda--Paiko
心悦宝石
泰语剧名:_______
泰语音译:ManeeSawad
合作演员:AunWitayaWasukraipaisarnChaiChatayodomHiranyatithiJessieJessicaPasaphan
中字十四集全
Rita
WiangGumGam(Futurelakorn)
1、朝鲜男人在韩国 (Donghaemulgwa baekdusan)
上映:2003年地区:韩国语言:韩语类型:喜剧片画面:彩色
主演:孔炯轸出品:Showbox [kr]
CHOIBaek-doo是朝鲜海军第十三部队的将教,而LIMDong-hae则是队中的兵士。两人在一晚均喝得昏醉,并且在海岸上踱步,不久他们被海浪卷走。二人随着海岸飘流。当他们醒来时,眼前发生意想不到的事——他们不知不觉间已飘流到韩国的国境!他们毫不习惯在韩国的生活,因为他们不断受到黑帮的追捕。他们想尽方法,希望能够返回朝鲜。终于,他们想到参加歌唱比赛——因为歌唱比赛的胜出者有机会到金刚山旅行……
2、恋爱高手 (The Art of Seduction)
上映:2005年地区:韩国语言:韩语类型:爱情片,喜剧片画面:彩色
导演:吴启焕主演:孙艺珍,朴俊圭 ParkJun-kyu,宋一国,玄英,安善英出品:韩国Showbox 影业公司
恋爱强手敏俊和智媛见面了,选手和选手之间就是容易发现对方。恋爱高手敏俊和智媛走到了一起,他们谁也不甘落后。他们两人终于有机会将自己积累了多年的恋爱秘诀展示给对方看了,大展身手的机会来了! 都觉得自己终于找到了对手,开始了全面行动的二人,曾经是白发百种的敏俊和智媛,他们慢慢发现自己的内功在慢慢减退,自己的招数常常不能受到对方的欢迎,作为恋爱强手,他们慢慢开始怀疑自己的能力。非常自信的智媛的华丽恋爱招数,逍遥自在的敏俊的恋爱秘诀,二人心里慢慢开始告别恋爱的手段,而是变得越来越真实了。 但是,真正的英雄在战争结束之前是决不会轻易放弃的,最后的胜者到底是谁呢?恋爱胜者们才能享受到的
3、情窦初开
上映:2005年地区:韩国类型:喜剧片
主演:金在元,何智苑
韩国最新偶像搞笑喜剧片《情窦初开》主演:金在元暂无介绍
4、我的老婆是大佬3 (My Wife is a Gangster 3)
上映:2006年地区:韩国语言:韩语类型:动作片,喜剧片画面:彩色
导演:赵真奎主演:舒淇 Shu,Fanny (林立慧(原名)),崔民秀,李凡秀
一名香港黑社会老大的女儿(舒淇饰),武功出色且家里非常有钱。为躲避香港黑帮间的火并,逃到韩国和韩国的黑社会的人一起生活,并被仇人追杀。《我的老婆是大佬3》与前两部**没有任何关联,是独立的一部片子。比如题材等各个方面都有很多不同之处,也几乎没有用前两部**中的演员。
5、*乱书生 (Forbidden Quest)
上映:2006年地区:韩国语言:国语类型:喜剧片画面:彩色
导演:金大佑编剧:金大佑主演:李凡秀,韩石圭 (韩太公(昵称))
名师之徒,也是当代最有名的书生尹书(韩石圭饰)不想追求权力,党派之争对他来说毫无兴趣。一直过着悠闲贵族生活的尹书,在反对派的阴谋下不得不接一个头疼的案子。在处理案件的过程中尹书平生第一次接触到了色情书籍,并且从书中感觉到了无比的兴奋。于是他萌生了想写*乱小说的想法。尹书以秋月色为笔名开始发表了他的*乱小说,一心想成为天下第一小说家的尹书,觉得自己一个人的力量还不够。于是他恳求自己家族的宿敌,恶名远扬的广宪(李范修饰)为他的小说画画。广宪最后也忍不住小说的诱惑同意与尹书携手共创*乱小说。美丽又有格调的文采遇见了生动活泼的画,称得上是锦上添花、画龙点睛!忘掉贵族的本分,俩人完美的组合下诞生了最
6、我的小小新娘 (My Little Bride)
上映:2004年地区:韩国类型:喜剧片
导演:金浩俊主演:金仁文,文根英 (马铃薯、文具店(昵称)),金来沅
一位出色的大学生尚民要迎娶一位16岁情窦初开的少女!是真的吗? 自以为世上所有的女孩都是自己的、有过多种工作经验的大学生尚民,喜欢嘟嘴、看到帅哥就会激动不已的女高中生宝恩……宝恩的爷爷给两人下达了一个玩笑似的命令:两人必须结婚!这是爷爷一向的心愿,随着爷爷病情的恶化,24岁的尚民和16岁的宝恩无奈最后不得不结婚! 单纯的女高中生宝恩背着24岁的“老家伙”尚民与棒球队主力偷偷约会! 虽然结婚了,对这个连初吻都未献出的16岁新娘尚民实在没办法,因为已经是有妇之夫连职场的路都铺满了荆棘。虽然这样,善良的尚民仍然下定决心好好照顾宝恩,给她一个充实的婚姻生活!然而,老天却不眷顾他,16岁的新娘在新婚旅行
7、汉城爱恋
上映:2004年地区:韩国类型:爱情片,喜剧片
主演:姜东元
韩国喜剧影片《汉城爱恋》,两女一男的感情纠葛 青春偶像喜剧
8、美女伤心 (200 Pounds Beauty)
上映:2006年别名:200磅美女 (美女的烦恼 Mi-nyeo-neun Goi-ro-wa)地区:韩国语言:韩语类型:剧情片,喜剧片画面:彩色
导演:金容华编剧:卢惠英主演:朱镇模,金雅中
影片根据日本漫画改编而成,讲述了一个又胖又难看的女子立志成为最性感女歌手的搞笑故事。金雅中的肥女造型则专门邀请好莱坞特型化妆师量身打造。 身高169,体重95公斤,就算是摔跤选手也不过如此的身材却生在一个女孩子身上,不可不算是一个悲剧了吧,尤其是爱上一个大众情人似的男子,换做是谁,谁不知道还有没有勇气活下去。神给汉娜(金雅中 饰)唯一的优势是她有一副金嗓子,虽然她做梦都想当歌手,可是因为外形问题只能给美女歌手亚美做幕后配唱,唯一欣赏她歌声的就是雅美的音乐制作人韩相俊(朱镇模 饰),于是汉娜偷偷的爱上了他,单相思的她终于盼到了她的生日晚会,并决定鼓起勇气要邀请意中人……可是从那天开始,身材
9、色即是空系列
10、谁与她同床了 (Sexy Teacher)
上映:2006年别名:谁和她睡觉了 (Noo-ga Geun-nyeo-wa Jass-eul-gga) (Who Sleeped With Her)地区:韩国语言:韩语类型:爱情片,剧情片,喜剧片画面:彩色
导演:金侑成主演:金莎朗(金思朗) Sa-rang Kim,朴俊奎,河锡镇
性感惹火却心意难测的“威险”师范实习生严智英被分配到了salesio高中,抵挡不住她无限魅的的色狼们纷纷也来到了salesio高中。漂亮脸蛋,身材性感的她是一个值得看了又看的尤物,思想*乱下流的色狼们受不了这朵黑夜之花的诱惑,纷纷来到黑暗的巢穴,其实这也不能怪他们,只要是大韩民国的健康男人都不会错过这个机会的。lesio校园王子泰友,40岁面庞心地单纯的宰成等等……他们都开始了争夺美女垂青的艰苦战役。他们发动了数次爱情攻势,屡战屡败但毫不气馁,而此时随着学校庆典日的到来,却发生一桩耐人寻味的事情,连素有铁血之称的学生部长Sirasoni也被牵涉其中。教室窗子异常的颤动,男女身体纠缠的侧影,娇柔
11、麻婆岛2 (Mapado2)
上映:2007年别名:重返麻婆岛地区:韩国语言:韩语类型:喜剧片画面:彩色
导演:李尚勋主演:金智英,吕韵季,李文植,金秀美,金乙东,朱玄出品:CJ娱乐
仍旧是奉着闲荡主义梦想有所建树的崇秀(李文植 饰)受到财阀会长朴达九(朱玄 饰)寻找初恋花**的委托,在去朴达九故乡东柏岛的途中,同船的美男子奇英(李奎翰 饰)和崇秀在暴风雨中迷失落海漂到了一座小岛上,待睁开眼睛一看,居然又是那个恶梦般的麻婆岛!而这里凶恶的老太太们还是一如既往的生活在一起,这次和崇秀再次相见难道真的是老天的意思,老天派两个男劳力帮助老奶奶们做农活的?于是老奶奶们使役起他们来手段更强力,更巧妙也更恶劣了。崇秀唯一的希望就是能从这里逃出去到东柏岛找那个什么花**,在他快绝望的一天忽然知道这岛原来的名字居然叫东柏岛,震惊之下又是大喜,于是对老奶奶们的过去展开了多方调查,然后那个朴会
12、好好过日子 (Live Good)
上映:2006年别名:计划生育 (好好活着)地区:韩国语言:韩语类型:爱情片,喜剧片画面:彩色
导演:安振宇主演:李凡秀,金晶恩,边熙奉 Byeon Hee-bong
计划生育不仅仅只是中国的特色,韩国也不例外。向来以生产率高居大韩民国榜首,并以此为傲的顺风村,忽然来了一位不速之客,而且这个家伙居然声称从此以后要管理当地人的房事!这个人是国家计划生育政策的执行要员朴贤洙(金正恩饰)**,也是影片的的主人公,她到了顺风村之后,发现这里的人竟不知道行房要避孕这回事,所以要说服这些村民无异就是天方夜谈,苦恼之后,她决定启用村里的里长边石九(李范秀饰)为临时执行要员,协助她的工作。边石九是个什么样子的人物呢?他首先是影片的男主角,其次他是一个只要有梦想的人,他的梦想就是让所有的孩子们都能吃饱。现在,他要协助朴要员搞好计划生育工作了,看似没什么本事的边石九在管理村里亲
不过本人最喜欢《恋爱高手》
一、简易实验拓扑
show xlate #查看nat转换表项,默认保持3小时
二、NAT类型
21、动态一对一转换(外网地址足)
此场景适用于私网用户上公网, 公网地址充足的情况
传统配置(83前)
ciscoasa(config)# nat (in) 1 192168400 2552552550 #内网IP
ciscoasa(config)# global (out) 1 202111-2021110 #公网IP
新版本(84以后)
ciscoasa(config-if)# object network nat-pool
ciscoasa(config-network-object)# rang 202111 2021110
ciscoasa(config-network-object)# object network real-src
ciscoasa(config-network-object)# subnet 192168400 2552552550
ciscoasa(config-network-object)# nat (in,out) dynamic nat-pool
配置多个rang,“拼接”出一个较大的地址池
ciscoasa(config)# object network nat-pool-1
ciscoasa(config-network-object)# rang 202111 2021110
ciscoasa(config-network-object)# object network nat-pool-2
ciscoasa(config-network-object)# rang rang 20211100 20211110
ciscoasa(config)# object-group network nat-pools
ciscoasa(config-network-object-group)# network-object object nat-pool-1
ciscoasa(config-network-object-group)# network-object object nat-pool-2
ciscoasa(config-network-object-group)# exit
ciscoasa(config)# object network real-src
ciscoasa(config-network-object)# subnet 192168400 2552552550
ciscoasa(config-network-object)# nat (in,out) dynamic nat-pools #这边是转换成为object-group的
说明:
1、动态转换中,地址池的object定义,不允许使用subnet方式,是考虑到地址池必须避开已占用地址。
2、动态转换中,用到地址池的地址是随机抽取的,但多个object拼接成object-group的情况下,会用完第一个object中rang范围的全部地址,才会用第二个object中的地址。
22、动态PAT(多对一)
适用于私网用户上公网,公网地址稀缺。基本原理是对于TCP/UDP协议,通过端口号区分会话,对于ICMP协议,通过ID号区分。
PAT转换表项的回收时间只有30秒。原因是PAT地址本来就稀缺,闲置无流量一段时间后,应将复用资源尽快收回。
传统配置(83前)
nat (inside) 1 192168400 2552552550
global(outside) 1 202112 #外网地址
新版本(84以后)
ciscoasa(config)# object network pat-1
ciscoasa(config-network-object)# host 202112
ciscoasa(config-network-object)# object network real-src
ciscoasa(config-network-object)# subnet 192168400 2552552550
ciscoasa(config-network-object)# nat (in,out) dynamic pat-1
说明:
subnet 0000 0000 表示内网所有的地址
nat (inside,outside) dynamic 202112 #当映射地址为单一地址的时候,也可以直接PAT地址
nat (inside,outside) dynamic interface #当公网地址稀缺到只有一个地址,可以直接复用接口地址
多个地址做PAT复用地址:
ciscoasa(config)# object network PAT
ciscoasa(config-network-object)# RANG 202115 2021110
ciscoasa(config-network-object)# object network real-src
ciscoasa(config-network-object)# subnet 192168400 2552552550
ciscoasa(config-network-object)# nat (inside,outside) dynamic pat-pool PAT
说明:
nat (inside,outside) dynamic pat-pool PAT 后跟round-robin,表示多个PAT地址轮流使用,而不是耗尽第一个才用第二个
23、先动态一对一,地址不够再PAT
传统配置(83前)
ciscoasa(config)# nat (in) 1 192168400 2552552550
ciscoasa(config)# global (out) 1 202112-202118
ciscoasa(config)# global (out) 1 2021110
新版本(84以后)
ciscoasa(config)# object network nat-pool
ciscoasa(config-network-object)# rang 202112 202118
ciscoasa(config-network-object)# object network pat-1
ciscoasa(config-network-object)# host 202119
ciscoasa(config-network-object)# object network real-src1
ciscoasa(config-network-object)# subnet 19216810 2552552550
ciscoasa(config-network-object)# nat (in,out) dynamic nat-pool
ciscoasa(config-network-object)# object network real-src2
ciscoasa(config-network-object)# subnet 19216810 2552552550
ciscoasa(config-network-object)# nat (in,out) dynamic pat-pool pat-1
因为这里object network的名称会影响到最终排序,因此auto-nat自动排序时会将一对一转化规则排在PAT 之前,如果顺序不对,要通过修改object名字来影响。
24、静态一对一转换(外到内)
此场景适用于隐藏真实的内网地址,可用于私网服务器对公网用户提供服务,利用访问控制列表来控制具体的端口。
传统配置(83前)
ciscoasa(config)# static (dmz,out) 2021001101 192168403
新版本(84以后)
ciscoasa(config)# object network map
ciscoasa(config-network-object)# host 202118
ciscoasa(config-network-object)# object network real-src
ciscoasa(config-network-object)# host 192168403
ciscoasa(config-network-object)# nat (dmz,out) static map
ciscoasa(config-network-object)# access-list outside permit tcp any host 192168403 eq 23
ciscoasa(config)# access-group outside in in outside
备注:
84版本后都是放行原地址的流量,源端口。
公网用户通过map地址来访问到内网的server,流量始发是从outside进入,dmz离开,属于inbound流量,需要通过ACL放行。
25、静态端口转换
251、使用自定义公网IP
适用于私网服务器对公网用户提供具体服务,私网服务器只讲相关端口映射到公网,映射后的端口和真实端口可以相同也可以不同。
传统配置(83前)
static (inside,outside) tcp 2021001101 2323 1721611 23
新版本(84以后)
ciscoasa(config)# object network map
ciscoasa(config-network-object)# host 2021001101
ciscoasa(config-network-object)# object network real-src
ciscoasa(config-network-object)# host 1721611
ciscoasa(config-network-object)# nat (dmz,out) static map service tcp 23 2323 #一个object下面只能调用一条nat
252、复用公网接口地址
如果映射地址复用公网接口地址,同时占用了ASA自身的某个服务端口的话,但会报错,阻止自身服务端口被映射到内网服务器,比如:
nat(dmz,outside) static interface service tcp 23 23 #全局下敲的命令
253、多个端口映射
注:如果server有多个服务端口需要映射到公网同一个地址上,只能分别写
object network real-telnet
host 192168403
nat (dmz,outside) 2021001101 service tcp 23 3023
object network real-www
host 192168403
nat (dmz,outside) 2021001101 service tcp 80 3080
26、策略NAT
此场景适用于私网地址上公网,根据访问目的地址的不同,要翻译为不同的地址池的情况。
由于自动nat只能基于源地址做nat规则,内有能够限定目的地址的功能,所以只能手动实现。
传统配置(83前)
access-list inside1 permit ip 19216810 2552552550 host 1287301 #匹配感兴趣流
access-list inside2 permit ip 19216810 2552552550 host 1287302
nat (inside) 1 access-list inside1 #内到外的nat不写子网,写匹配的规则
nat (inside) 2 access-list inside2
global (outside) 1 2021111 #匹配inside1的下一跳指向
global (outside) 2 2021112
新版本(84以后)
ciscoasa(config)# object network det-1
ciscoasa(config-network-object)# host 1287301
ciscoasa(config-network-object)# object network det-2
ciscoasa(config-network-object)# host 1287302
ciscoasa(config-network-object)# object network pat-1
ciscoasa(config-network-object)# host 2021111
ciscoasa(config-network-object)# object network pat-2
ciscoasa(config-network-object)# host 2021112
ciscoasa(config-network-object)# object network real-src
ciscoasa(config-network-object)# subnet 19216810 2552552550
注:手动NAT是在全局下敲的。
ciscoasa(config)# nat (in,out) source dynamic real-src pat-1 destination static det-1 det-1
ciscoasa(config)# nat (in,out) source dynamic real-src pat-2 destination static det-2 det-2
解释:当real-src去访问det-1时,源地址转换为pat-1区访问det-1
(当流量从inside接口进,outside接口出,源地址为real-src,目的地址为det-1时,将源地址动态转换为pat-1,目的地址不变)
27、双向NAT(源目同时NAT)
既转换源地址,也转换目的地址
传统配置(83前)
access-list inside1 permit ip host 19216810 host 202100110
nat (inside) 1 access-list inside1
global (outside) 1 202100111
static (outside,inside) 19216811 202100111
新版本(84以后)
object network dst
host 202100121
object network map-src
host 202100111
object network real-src
host 19216811
object network map-dst
host 1721611
nat (inside,outside) source static real-src map-src destination static map-dst dst
就是real-src去访问map-dst的时候
(19216811访问1721611)
转换为map-src去访问dst
(20210011访问202100121)
自己去调整,随便写的;
package combaiducomjava;
import javautilArrayList;
import javautilHashMap;
import javautilList;
import javautilMap;
public class MatchWorld {
public static void main(String[] args) {
String str = "Is there anyone who hasn't suffered for the secret love We alwaysthink that"
+ " love is very heavy, heavy and could be the heaviest thing inthe world "
+ "But one day, when you look back, you suddenly realize thatit's always light, "
+ "light We all thought love was very deep, but infact it's very thin " + "The deepest and heaviest love must grow up withthe time";
// 全部转换成大写
str = strtoUpperCase();
//或许你可以考虑用空格分割
String[] rang = strsplit("\\b");
// 自己去调整吧,如果要得到精确的
Systemoutprintln("单词总数大概为:" + ranglength);
// 用来记录的单词
Map<String, Integer> map = new HashMap<String, Integer>();
int countSpace = 0;
//统计各个字符出现的次数
for (String s : rang) {
if (strim()length() > 0) {
s = strim();
if (!mapcontainsKey(s)) {
int count = strsplit("\\b" + strim() + "\\b")length;
mapput(s, count);
}
} else {
mapput("空格", countSpace++);
}
}
//单词出现次数
for (String key : mapkeySet()) {
Systemoutprintln(key + "出现:" + mapget(key) + "次");
}
//把元素添加到list
List<String> list = new ArrayList<String>();
listaddAll(mapkeySet());
// 排序前
Systemoutprintln("\n排序前:\n");
for (String s : list) {
Systemoutprintln(s+"出现次数:"+mapget(s));
}
// 开始排序
Systemoutprintln("\n按照出现次数降序排列(AESC):\n");
for (int i = 1; i < listsize(); i++) {
for (int j = 0; j < listsize() - i; j++) {
if (mapget(listget(j)) > mapget(listget(j+1))) {
String tmp = listget(j);
listset(j, listget(j+1));
listset(j + 1, tmp);
}
}
}
// 排序后
Systemoutprintln("\n排序后:\n");
for (String s : list) {
Systemoutprintln(s+"出现次数:"+mapget(s));
}
}
}
欢迎分享,转载请注明来源:浪漫分享网
评论列表(0条)