# Paste: IP3333

Author: qqqq factor Fri, 26 Aug 2022 04:14:26
Plain Text |
```class Solution {
public:
string ip6(string &s){
//0 to 9
//a to f
//A to F
int len=0,i=0,count;
while(i<s.size())
{
count=0;
while(i<s.size()&&s[i]!=':')
{
if(count<4&&((s[i]>='0'&&s[i]<='9')||(s[i]>='a'&&s[i]<='f')||(s[i]>='A'&&s[i]<='F')))
i++,count++;
else
return "Neither";
}
if(count==0||count>4)return "Neither";
i++;
len++;
}
return len==8?"IPv6":"Neither";
}
string ip4(string &s){
//0 to 255
//no leading zeroes
int len=0,i=0,count,val;
while(i<s.size())
{
count=0;
val=0;
while(i<s.size()&&s[i]!='.')
{

if((s[i]<'0'||s[i]>'9')||(count==1&&val==0)||val>255)return "Neither";
val*=10;
val+=(s[i++]-'0');
count++;
}
if(count==0||val<0||val>255) return "Neither";
i++;
len++;
}
return len==4?"IPv4":"Neither";
}

string validIPAddress(string s) {
//for ip6
//length must be 1<= len<=4
//single scope
//no .
//total length must be 8
//ip4
//no leading zeroes
//no scope
//1<=val<=255
//total length =6
if(s.back()==':'||s.back()=='.')return "Neither";
for(int i=0;i<s.size();i++)
if(s[i]==':') return ip6(s);
else if(s[i]=='.') return ip4(s);
return "Neither";
}
};```

## New Annotation

Summary: textPostgreSQLPowerCenter Parameter Fileactionscriptadaada95ans-forth94antantlrantlr4apacheconfapdlapplescriptaspaspect-jassembly-agcassembly-agsassembly-arm32assembly-m68kassembly-macro32assembly-mcs51assembly-parrotassembly-r2000assembly-x86avroawkbbatchbbjbcelbeanshellbibtexbinsource-agccc#c++cfscriptchillcilclipsclojurecmakecobolcoffeescriptcoldfusioncplex-lpcsscsvcvs-commitddartdjangodockerfiledotdoxygendrawj2ddsssleiffelembperlerlangfactorfhtmlforthfortranfortran90foxprofreemarkergcbasicgettextgherkingnuplotgogradlegroovygsphaskellhaxehexhl7v2hlslhtaccesshtmlhxmli4glicalendariconidlinforminiinno-setupinterlisiojamonjavajava module-infojavaccjavafxjavascriptjcljedit-actionsjflexjhtmljmkjsonjspkotlinlatexlexlilypondlispliterate-haskelllogslogtalklotosluam4macroschedulermailmakefilemaplemarkdownmavenmavscriptmetapostmlmodula3moinmqscmustache-templatemxmlmyghtymysqln3netrexxnqcnsis2objective-cobjectrexxoccamomnimarkopensipsoutlinepascalpatchperlphppikepl-sqlpl-sql9pl1plaintexplantumlpop11postscriptpovraypowerdynamopowershellprogressprologpropertiesprotobufpspptlpurepvwavepyrexpythonqdocrakefilercprdrebolredcoderelax-ng-compactrenderman-ribrestrfcrhtmlroffrpm-specrtfrubyrustrviews#s+sassbtscalaschemesdl/prsgmlshellscriptshtmlsipsippslateslaxsmalltalksmartysmi-mibsparqlsql-loadersqrsquidconfstatasvn-commitswiftswigtcltemplate-toolkittextexinfotldtransact-sqltsptwikityposcripturluscriptvalavbscriptvelocityverilogvhdlvisualbasicvrml2wellknowntextxmlxqxslyabyamlzpt