C++做一个小游戏,有源代码的最好,谢谢

C++做一个小游戏,有源代码的最好,谢谢,第1张

#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));

}

}

}

欢迎分享,转载请注明来源:浪漫分享网

原文地址:https://hunlipic.com/jiehun/10654234.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-11-11
下一篇2023-11-11

发表评论

登录后才能评论

评论列表(0条)

    保存