⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 evaipaddress.cpp

📁 linux下的eva源代码
💻 CPP
字号:
/*************************************************************************** *   Copyright (C) 2005 by yunfan                                          * *   yunfan_zg@163.com                                                     * *                                                                         * *   This program is free software; you can redistribute it and/or modify  * *   it under the terms of the GNU General Public License as published by  * *   the Free Software Foundation; either version 2 of the License, or     * *   (at your option) any later version.                                   * *                                                                         * *   This program is distributed in the hope that it will be useful,       * *   but WITHOUT ANY WARRANTY; without even the implied warranty of        * *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         * *   GNU General Public License for more details.                          * *                                                                         * *   You should have received a copy of the GNU General Public License     * *   along with this program; if not, write to the                         * *   Free Software Foundation, Inc.,                                       * *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             * ***************************************************************************/  #include "evaipaddress.h"#include <stdlib.h>EvaIPAddress::EvaIPAddress(const uint ip)	:isValidIP(false){	mIP = ip;	isValidIP = true;}EvaIPAddress::EvaIPAddress(const std::string &strIP)	:isValidIP(false){	mIP = getIntIP(strIP);	if(mIP)		isValidIP = true;}EvaIPAddress::EvaIPAddress(const EvaIPAddress &address)	:isValidIP(false){	mIP = address.IP();	isValidIP = address.isValid();}void EvaIPAddress::setAddress(const uint ip){	mIP = ip;}void EvaIPAddress::setAddress(const std::string &strIP){	mIP = getIntIP(strIP);}const bool EvaIPAddress::isValid() const{	return isValidIP;}const uint EvaIPAddress::IP() const{	return mIP;}const std::string EvaIPAddress::toString(){	char strIP[16];	memset(strIP, 0, 16);	sprintf(strIP, "%d.%d.%d.%d", (mIP&0xFF000000)>>24, (mIP&0x00FF0000)>>16, (mIP&0x0000FF00)>>8, (mIP&0x000000FF));	return std::string(strIP);}EvaIPAddress &EvaIPAddress::operator= (const EvaIPAddress &rhs){	mIP = rhs.IP();	isValidIP = rhs.isValid();	return *this;}uint EvaIPAddress::getIntIP(const std::string &strIP){	int num = 0;	for(uint i=0; i< strIP.length(); i++)		if(strIP[i] == '.') num++;	// check if it consists of 4 parts	if(num != 3){		isValidIP = false;		return 0;	}		// get all 4 parts in 	unsigned char parts[4];	int start = 0, end = 0;	for(int i=0; i<4; i++){		for(uint j= start; j<strIP.length(); j++){			if(strIP[j] == '.'){				end = j;				break;			}			if(strIP[j] < '0' || strIP[j] > '9'){				isValidIP = false;				return 0;			}		}		//printf("3 strIP:%s\n",strIP.c_str());		std::string tmp = strIP.substr(start, end - start);		int tmpInt = atoi(tmp.c_str());				if(tmpInt< 0 || tmpInt > 255){			isValidIP = false;			return 0;		}		parts[i] = (unsigned char)tmpInt;		start = end + 1;	}	// put all 4 parts into one uint	return ((uint)parts[0])<<24 | ((uint)parts[1])<<16 | ((uint)parts[2])<<8 | parts[3];}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -